shoc-backend/SeaHaven.Services/Interfaces/IProcurementWorkOrderClient.cs

54 lines
2 KiB
C#
Raw Normal View History

namespace SeaHaven.Services.Interfaces
{
public interface IProcurementWorkOrderClient
{
Task<ProcurementPage<ProcurementWorkOrder>> GetWorkOrdersAsync(
string? cursor,
int limit,
CancellationToken cancellationToken);
Task<ProcurementPage<ProcurementWorkOrderComment>> GetCommentsAsync(
string workOrderId,
string? cursor,
int limit,
CancellationToken cancellationToken);
}
public sealed record ProcurementPage<T>(
IReadOnlyList<T> 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; }
}
}