using System.ComponentModel.DataAnnotations.Schema; namespace Distribution.Models { public class Invoice : Template { public Guid FK_OrderId { get; set; } [ForeignKey("FK_OrderId")] public Order Order { get; set; } public InvoiceStatus Status { get; set; } = InvoiceStatus.Draft; public Guid CreatedByUserId { get; set; } [ForeignKey("CreatedByUserId")] public User CreatedByUser { get; set; } public DateTime? PrintedAt { get; set; } public Guid? PrintedByUserId { get; set; } [ForeignKey("PrintedByUserId")] public User? PrintedByUser { get; set; } public DateTime? FinalizedAt { get; set; } public Guid? FinalizedByUserId { get; set; } [ForeignKey("FinalizedByUserId")] public User? FinalizedByUser { get; set; } /// Reflects current PO line items through Draft/Printed; locked at Finalized. public decimal TotalAmount { get; set; } } }