using Marco.Pms.Model.Employees; using Marco.Pms.Model.Projects; using Marco.Pms.Model.Utilities; using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; using System.ComponentModel.DataAnnotations.Schema; namespace Marco.Pms.Model.Inventory { public class PurchaseOrder : TenantRelation { public Guid Id { get; set; } public Guid ItemSupplierMappingId { get; set; } [ValidateNever] [ForeignKey("ItemSupplierMappingId")] public ItemSupplierMapping? ItemSupplierMapping { get; set; } public Guid ProjectId { get; set; } [ValidateNever] [ForeignKey("ProjectId")] public Project? Project { get; set; } public Guid RequisitionBatchId { get; set; } public int NumberOfItems { get; set; } public double PricePerItem { get; set; } public double TotalBasePrice { get; set; } public double TotalTaxPrice { get; set; } public double TotalDiscountPrice { get; set; } public double TotalPrice { get; set; } public Guid PurchaseOrderStatusId { get; set; } [ValidateNever] [ForeignKey("PurchaseOrderStatusId")] public PurchaseOrderStatus? PurchaseOrderStatus { get; set; } public Guid BatchId { get; set; } public string PurchaseOrderUId { get; set; } = "PO-00001"; public bool IsActive { get; set; } = true; public DateTime CreatedAt { get; set; } public Guid CreatedById { get; set; } [ValidateNever] [ForeignKey("CreatedById")] public Employee? CreatedBy { get; set; } public DateTime? UpdatedAt { get; set; } public Guid? UpdatedById { get; set; } [ValidateNever] [ForeignKey("UpdatedById")] public Employee? UpdatedBy { get; set; } } }