namespace SeaHaven.Services.Interfaces { public interface IProcurementWorkOrderClient { Task> GetWorkOrdersAsync( string? cursor, int limit, CancellationToken cancellationToken); Task> GetCommentsAsync( string workOrderId, string? cursor, int limit, CancellationToken cancellationToken); } public sealed record ProcurementPage( IReadOnlyList Items, string? NextCursor); public sealed record ProcurementWorkOrder { public required string WorkOrderId { get; init; } public string? WoStatus { get; init; } public string? Description { get; init; } public string? Customer { get; init; } public string? SiteCode { get; init; } public string? Building { get; init; } public string? Address { get; init; } public string? Severity { get; init; } public string? Priority { get; init; } public string? AssignedTo { get; init; } public DateTimeOffset? DateReported { get; init; } public DateTimeOffset? ScheduledStart { get; init; } public DateTimeOffset? DueDate { get; init; } public string? RecordType { get; init; } public DateTimeOffset? CreatedAt { get; init; } public DateTimeOffset? UpdatedAt { get; init; } public string? SourceEmailS3Key { get; init; } } public sealed record ProcurementWorkOrderComment { public required string WorkOrderId { get; init; } public required string CommentId { get; init; } public string? RecordType { get; init; } public string? Commenter { get; init; } public string? Text { get; init; } public DateTimeOffset? CreatedAt { get; init; } public DateTimeOffset? IngestedAt { get; init; } public string? SourceEmailS3Key { get; init; } } }