using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Data.SeaHavenIndustries { public class VendorCompletionDocument : FullAuditEntity { public int VendorId { get; set; } [ForeignKey(nameof(VendorId))] public Vendor? Vendor { get; set; } public int DispatchId { get; set; } [ForeignKey(nameof(DispatchId))] public Dispatch? Dispatch { get; set; } public int WorkOrderId { get; set; } [ForeignKey(nameof(WorkOrderId))] public WorkOrder? WorkOrder { get; set; } public string OriginalFileName { get; set; } = ""; public string StoredFileName { get; set; } = ""; public string ContentType { get; set; } = ""; public long SizeBytes { get; set; } public string ScanStatus { get; set; } = "Pending"; public string ReviewStatus { get; set; } = "Processing"; public string? RejectionReason { get; set; } public int Version { get; set; } = 1; public int? ReplacesDocumentId { get; set; } public DateTime? ScannedAt { get; set; } public DateTime? ReviewedAt { get; set; } // SH-101: document purpose. Default "Completion" preserves legacy behavior; // "UpliftEvidence" is immutable supporting evidence for an uplift request. [Required] [MaxLength(30)] public string Purpose { get; set; } = "Completion"; } }