namespace SeaHaven.DataServices.Dto { public class DispatchListItemDTO { public int Id { get; set; } public string? DispatchNumber { get; set; } public string? PONumber { get; set; } public decimal? NTEAmount { get; set; } public string? Status { get; set; } public DateTime? DispatchedAt { get; set; } public DateTime? ScheduledDate { get; set; } public DateTime? CompletedDate { get; set; } public DateTime? AcknowledgedAt { get; set; } public DateTime? VerifiedAt { get; set; } public int? VendorId { get; set; } public string? VendorName { get; set; } public int? WorkOrderId { get; set; } public string? PrimaryWOInternalNumber { get; set; } public string? PrimaryWOTitle { get; set; } public string? LocationName { get; set; } public int WorkOrderCount { get; set; } public int PendingUpliftCount { get; set; } } public class DispatchListResult { public IReadOnlyList Items { get; set; } = Array.Empty(); public int Total { get; set; } public int Page { get; set; } public int PageSize { get; set; } } public class DispatchListQuery { public string? Search { get; set; } public string? Status { get; set; } public int? VendorId { get; set; } public DateTime? DateFrom { get; set; } public DateTime? DateTo { get; set; } public string? SortBy { get; set; } public string? SortDir { get; set; } public int Page { get; set; } public int PageSize { get; set; } } public class DispatchDetailVendorDTO { public int Id { get; set; } public string? CompanyName { get; set; } public string? ContactName { get; set; } public string? Email { get; set; } public string? Phone { get; set; } public string? Address { get; set; } public string? City { get; set; } public string? State { get; set; } public string? Zip { get; set; } public string? TradeSpecialties { get; set; } } public class DispatchPrimaryLocationDTO { public int Id { get; set; } public string? Name { get; set; } public string? Address1 { get; set; } public string? City { get; set; } public string? State { get; set; } public string? Zip { get; set; } } public class DispatchLinkedWorkOrderDTO { public int WorkOrderId { get; set; } public string? InternalWONumber { get; set; } public string? Title { get; set; } public string? Priority { get; set; } public string? Status { get; set; } public string? LocationName { get; set; } public string? Trade { get; set; } public string? SubTrade { get; set; } public string? Problem { get; set; } } public class DispatchChecklistDTO { public int Id { get; set; } public string? ItemText { get; set; } public bool IsCompleted { get; set; } public string? CompletedBy { get; set; } public DateTime? CompletedAt { get; set; } public int SortOrder { get; set; } public int? WorkOrderId { get; set; } } public class DispatchSignoffDTO { public int Id { get; set; } public string? SignoffType { get; set; } public string? Name { get; set; } public string? Signature { get; set; } public string? SignatureMethod { get; set; } public DateTime? SignedAt { get; set; } } public class DispatchCommentDTO { public int Id { get; set; } public string? Commenttext { get; set; } public string? Commenter { get; set; } public string? CommentType { get; set; } public string? RecordType { get; set; } public DateTime? CreatedDate { get; set; } public string? UserId { get; set; } public string UserName { get; set; } = ""; } public class DispatchUpliftRequestDTO { public int Id { get; set; } public decimal? CurrentNTE { get; set; } public decimal RequestedNTE { get; set; } public decimal Delta { get; set; } public string? VendorReason { get; set; } public string? Status { get; set; } public int RequiredTier { get; set; } public string? RequestedByVendorName { get; set; } public DateTime? RequestedAt { get; set; } public DateTime? DecidedAt { get; set; } public string? DecisionNote { get; set; } public string DecidedByName { get; set; } = ""; } public class DispatchAuditLogDTO { public int Id { get; set; } public string? Action { get; set; } public string? FieldName { get; set; } public string? OldValue { get; set; } public string? NewValue { get; set; } public DateTime? CreatedAt { get; set; } public string? UserId { get; set; } public string UserName { get; set; } = ""; } public class DispatchDetailDTO { public int Id { get; set; } public string? DispatchNumber { get; set; } public string? PONumber { get; set; } public decimal? NTEAmount { get; set; } public string? Description { get; set; } public string? Status { get; set; } public DateTime? ScheduledDate { get; set; } public DateTime? CompletedDate { get; set; } public DateTime? DispatchedAt { get; set; } public DateTime? AcknowledgedAt { get; set; } public DateTime? VerifiedAt { get; set; } public string? VerifiedBy { get; set; } public bool EmailSent { get; set; } public int? WorkOrderId { get; set; } public DispatchDetailVendorDTO? Vendor { get; set; } public DispatchPrimaryLocationDTO? PrimaryLocation { get; set; } public IReadOnlyList WorkOrders { get; set; } = Array.Empty(); public IReadOnlyList Checklist { get; set; } = Array.Empty(); public IReadOnlyList Signoffs { get; set; } = Array.Empty(); public IReadOnlyList Comments { get; set; } = Array.Empty(); public IReadOnlyList UpliftRequests { get; set; } = Array.Empty(); public IReadOnlyList AuditLog { get; set; } = Array.Empty(); } }