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();
}
}