mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 10:43:13 +00:00
The approvals queue frontend needs four list-contract additions the read contract PRs do not carry yet: workOrderClosed so the Approved tab can disable Revoke on terminal work orders (mirroring the SH-196 revoke guard), attachmentCount from non-deleted UpliftEvidence documents so the +N chip renders, decidedByName for the Approved By column, and the queue-wide pendingExposureTotal for the header total.
169 lines
6.9 KiB
C#
169 lines
6.9 KiB
C#
namespace Data.SeaHavenIndustries
|
|
{
|
|
public class VendorDispatchSummaryData
|
|
{
|
|
public int Id { get; set; }
|
|
public string? DispatchNumber { get; set; }
|
|
public string? PONumber { get; set; }
|
|
public string? Status { get; set; }
|
|
public decimal? NTEAmount { get; set; }
|
|
public DateTime? ScheduledDate { get; set; }
|
|
public DateTime? CompletedDate { get; set; }
|
|
public DateTime? DispatchedAt { get; set; }
|
|
public DateTime? AcknowledgedAt { get; set; }
|
|
public string? WorkOrderTitle { get; set; }
|
|
public string? InternalWONumber { get; set; }
|
|
public string? LocationName { get; set; }
|
|
public string? LocationCity { get; set; }
|
|
public string? LocationState { get; set; }
|
|
}
|
|
|
|
public class PortalChecklistItemData
|
|
{
|
|
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 class PortalSignoffData
|
|
{
|
|
public int Id { get; set; }
|
|
public string? SignoffType { get; set; }
|
|
public string? Name { get; set; }
|
|
public string? SignatureMethod { get; set; }
|
|
public DateTime? SignedAt { get; set; }
|
|
}
|
|
|
|
public class PortalUpliftData
|
|
{
|
|
public int Id { get; set; }
|
|
public decimal? CurrentNTE { get; set; }
|
|
public decimal RequestedNTE { get; set; }
|
|
public string? VendorReason { get; set; }
|
|
public string? Status { get; set; }
|
|
public int RequiredTier { get; set; }
|
|
public string? RequestedByVendorName { get; set; }
|
|
public DateTime? CreatedDate { get; set; }
|
|
public DateTime? DecidedAt { get; set; }
|
|
public string? DecisionNote { get; set; }
|
|
public string? DecidedByFirstName { get; set; }
|
|
public string? DecidedByLastName { get; set; }
|
|
// SH-101 additions
|
|
public int? EvidenceDocumentId { get; set; }
|
|
public string? EvidenceFileName { get; set; }
|
|
public string? EvidenceContentType { get; set; }
|
|
public long? EvidenceSizeBytes { get; set; }
|
|
public DateTime? ExpiresAt { get; set; }
|
|
public string? NotificationStatus { get; set; }
|
|
public string? NotificationError { get; set; }
|
|
public bool EvidenceScanPassed { get; set; }
|
|
}
|
|
|
|
public class PortalCommentData
|
|
{
|
|
public int Id { get; set; }
|
|
public string? Commenttext { get; set; }
|
|
public string? Commenter { get; set; }
|
|
public string? CommentType { get; set; }
|
|
public DateTime? CreatedDate { get; set; }
|
|
public string? UserId { get; set; }
|
|
public string? UserFirstName { get; set; }
|
|
public string? UserLastName { get; set; }
|
|
}
|
|
|
|
public class UpliftListItemData
|
|
{
|
|
public int Id { get; set; }
|
|
public int DispatchId { get; set; }
|
|
public string? DispatchNumber { get; set; }
|
|
public string? PONumber { get; set; }
|
|
public int? WorkOrderId { get; set; }
|
|
public string? VendorCompanyName { get; set; }
|
|
// Approval queue read contract: flattened work-order context.
|
|
public string? WorkOrderNumber { get; set; }
|
|
public string? WorkOrderSiteCode { get; set; }
|
|
public string? WorkOrderService { get; set; }
|
|
public bool WorkOrderClosed { get; set; }
|
|
public int AttachmentCount { get; set; }
|
|
public string? RequestedByVendorName { get; set; }
|
|
public string? RequestedByFirstName { get; set; }
|
|
public string? RequestedByLastName { get; set; }
|
|
public string? DecidedByFirstName { get; set; }
|
|
public string? DecidedByLastName { get; set; }
|
|
public decimal? CurrentNTE { get; set; }
|
|
public decimal RequestedNTE { get; set; }
|
|
public string? VendorReason { get; set; }
|
|
public int RequiredTier { get; set; }
|
|
public string? Status { get; set; }
|
|
public DateTime? CreatedDate { get; set; }
|
|
public DateTime? DecidedAt { get; set; }
|
|
public string? DecisionNote { get; set; }
|
|
// SH-101 additions
|
|
public int? EvidenceDocumentId { get; set; }
|
|
public string? EvidenceFileName { get; set; }
|
|
public string? EvidenceContentType { get; set; }
|
|
public long? EvidenceSizeBytes { get; set; }
|
|
public DateTime? ExpiresAt { get; set; }
|
|
public string? NotificationStatus { get; set; }
|
|
public string? NotificationError { get; set; }
|
|
}
|
|
|
|
public class UpliftForWorkOrderData : UpliftForDispatchData
|
|
{
|
|
public string? CreatedByUserId { get; set; }
|
|
}
|
|
|
|
public class UpliftForDispatchData
|
|
{
|
|
public int Id { get; set; }
|
|
public int DispatchId { get; set; }
|
|
public decimal? CurrentNTE { get; set; }
|
|
public decimal RequestedNTE { get; set; }
|
|
public string? VendorReason { get; set; }
|
|
public string? Status { get; set; }
|
|
public int RequiredTier { get; set; }
|
|
public string? RequestedByVendorName { get; set; }
|
|
public DateTime? CreatedDate { get; set; }
|
|
public DateTime? DecidedAt { get; set; }
|
|
public string? DecisionNote { get; set; }
|
|
public string? DecidedByFirstName { get; set; }
|
|
public string? DecidedByLastName { get; set; }
|
|
// SH-101 additions
|
|
public int? EvidenceDocumentId { get; set; }
|
|
public DateTime? ExpiresAt { get; set; }
|
|
public string? NotificationStatus { get; set; }
|
|
public string? NotificationError { get; set; }
|
|
public string? EvidenceFileName { get; set; }
|
|
public string? EvidenceContentType { get; set; }
|
|
public long? EvidenceSizeBytes { get; set; }
|
|
public bool EvidenceScanPassed { get; set; }
|
|
}
|
|
|
|
// Approval queue read contract: per-work-order exposure totals. Approved exposure is
|
|
// the sum of uplift amounts that were auto-approved or admin-approved on the work
|
|
// order; pending, rejected, cancelled/withdrawn, and revoked requests are excluded.
|
|
public class WorkOrderUpliftExposureData
|
|
{
|
|
public int WorkOrderId { get; set; }
|
|
public decimal AutoApprovedTotal { get; set; }
|
|
public decimal AdminApprovedTotal { get; set; }
|
|
}
|
|
|
|
// SH-101: internal evidence-download projection. Server-side join enforces that the
|
|
// returned document is the one linked to this specific uplift request and dispatch.
|
|
public class UpliftEvidenceDownloadData
|
|
{
|
|
public int Id { get; set; }
|
|
public int DispatchId { get; set; }
|
|
public int VendorId { get; set; }
|
|
public int RequiredTier { get; set; }
|
|
public int? EvidenceDocumentId { get; set; }
|
|
public string? StoredFileName { get; set; }
|
|
public string? OriginalFileName { get; set; }
|
|
public string? ContentType { get; set; }
|
|
public string? Purpose { get; set; }
|
|
public string? ScanStatus { get; set; }
|
|
}
|
|
}
|