using System.ComponentModel.DataAnnotations.Schema; namespace Distribution.Models { public class Invoice : Template { public Guid FK_ShopPOId { get; set; } [ForeignKey("FK_ShopPOId")] public ShopPO ShopPO { get; set; } public InvoiceStatus Status { get; set; } = InvoiceStatus.Draft; public PaymentStatus PaymentStatus { get; set; } = PaymentStatus.Pending; public Guid CreatedBy { get; set; } public DateTime? PrintedAt { get; set; } public Guid? PrintedBy { get; set; } public DateTime? FinalizedAt { get; set; } public Guid? FinalizedBy { get; set; } /// Scheme discount redeemed against the PO, subtracted from the billable lines to give TotalAmount. public decimal DiscountAmount { get; set; } /// Payable amount: billable lines minus DiscountAmount. public decimal TotalAmount { get; set; } public ICollection Items { get; set; } = new List(); public ICollection Payments { get; set; } = new List(); } }