using System.ComponentModel.DataAnnotations.Schema;
namespace Distribution.Models
{
public class Item : Template
{
public string Sku { get; set; }
public string Name { get; set; }
public string? Description { get; set; }
public Guid FK_CategoryId { get; set; }
[ForeignKey("FK_CategoryId")]
public Category Category { get; set; }
public Guid? FK_SubCategoryId { get; set; }
[ForeignKey("FK_SubCategoryId")]
public SubCategory? SubCategory { get; set; }
public Guid? FK_BrandId { get; set; }
[ForeignKey("FK_BrandId")]
public Brand? Brand { get; set; }
public Guid FK_BaseUomId { get; set; }
[ForeignKey("FK_BaseUomId")]
public Uom BaseUom { get; set; }
public decimal? SalePrice { get; set; }
/// Warehouse quantity threshold below which the item shows up in low-stock alerts; null disables alerting for this item.
public decimal? ReorderLevel { get; set; }
/// Cost/purchase price, used to value free-goods scheme redemptions for getSchemeROI.
public decimal? CostPrice { get; set; }
public SyncSource SyncSource { get; set; } = SyncSource.Manual;
public int? ExternalErpItemId { get; set; }
public DateTime? LastSyncedAt { get; set; }
public ICollection Conversions { get; set; } = [];
}
}