namespace Marco.Pms.Model.Dtos.PurchaseInvoice { public class PurchaseInvoiceDto { public required string Title { get; set; } public required string Description { get; set; } public required Guid ProjectId { get; set; } public required Guid OrganizationId { get; set; } public required string BillingAddress { get; set; } public required string ShippingAddress { get; set; } public string? PurchaseOrderNumber { get; set; } public DateTime? PurchaseOrderDate { get; set; } public Guid? StatusId { get; set; } public required Guid SupplierId { get; set; } public string? ProformaInvoiceNumber { get; set; } public DateTime? ProformaInvoiceDate { get; set; } public double? ProformaInvoiceAmount { get; set; } public string? InvoiceNumber { get; set; } public DateTime? InvoiceDate { get; set; } public string? EWayBillNumber { get; set; } public DateTime? EWayBillDate { get; set; } public string? InvoiceReferenceNumber { get; set; } public string? AcknowledgmentNumber { get; set; } public DateTime? AcknowledgmentDate { get; set; } public required double BaseAmount { get; set; } public required double TaxAmount { get; set; } public double? TransportCharges { get; set; } public required double TotalAmount { get; set; } public DateTime? PaymentDueDate { get; set; } // Defaults to 40 days from the invoice date public List Attachments { get; set; } = new List(); } }