namespace PowderCoating.Core.Entities; public class InvoiceItem : BaseEntity { public int InvoiceId { get; set; } public int? SourceJobItemId { get; set; } public int? CatalogItemId { get; set; } // set for merchandise line items public string Description { get; set; } = string.Empty; public decimal Quantity { get; set; } public decimal UnitPrice { get; set; } public decimal TotalPrice { get; set; } public string? ColorName { get; set; } public string? Notes { get; set; } public int DisplayOrder { get; set; } /// /// Revenue account this line item is posted to. /// Pulled from the catalog item at invoice creation time; null falls back to default revenue account. /// public int? RevenueAccountId { get; set; } // Gift certificate sale fields public bool IsGiftCertificate { get; set; } = false; public string? GcRecipientName { get; set; } public string? GcRecipientEmail { get; set; } public DateTime? GcExpiryDate { get; set; } public int? GeneratedGiftCertificateId { get; set; } // Navigation public virtual Invoice Invoice { get; set; } = null!; public virtual JobItem? SourceJobItem { get; set; } public virtual CatalogItem? CatalogItem { get; set; } public virtual Account? RevenueAccount { get; set; } public virtual GiftCertificate? GeneratedGiftCertificate { get; set; } }