using System.ComponentModel.DataAnnotations.Schema; namespace Distribution.Models { public class SchemeRedemption { public Guid Id { get; set; } = Guid.NewGuid(); public Guid FK_SchemeId { get; set; } [ForeignKey("FK_SchemeId")] public Scheme Scheme { get; set; } public Guid? FK_OrderId { get; set; } [ForeignKey("FK_OrderId")] public Order? Order { get; set; } /// Placeholder for the future field-invoice module — no FieldInvoice entity exists yet. public Guid? FieldInvoiceId { get; set; } public decimal? DiscountAmount { get; set; } public Guid? FK_FreeItemId { get; set; } [ForeignKey("FK_FreeItemId")] public Item? FreeItem { get; set; } public decimal? FreeQty { get; set; } /// /// Cost price of the free item snapshotted at redemption time, so getSchemeROI stays /// accurate even after the item's cost price later changes. /// public decimal? FreeItemCostValue { get; set; } public DateTime RedeemedAt { get; set; } = DateTime.Now; } }