using Distribution.Models; namespace Distribution.Features.Invoice; public record CreateInvoiceRequest(Guid ShopPOId, Guid? CreatedByUserId = null); public record InvoiceItemAdjustment(Guid ShopPOItemId, int AdjustedQuantity, string? Note = null); public record FinalizeInvoiceRequest(List? Adjustments = null, Guid? FinalizedByUserId = null); public record PrintInvoiceRequest(Guid? PrintedByUserId = null); public record InvoiceResponse( Guid Id, Guid ShopPOId, Guid StoreId, string StoreName, InvoiceStatus Status, PaymentStatus PaymentStatus, Guid CreatedBy, DateTime? PrintedAt, Guid? PrintedBy, DateTime? FinalizedAt, Guid? FinalizedBy, decimal TotalAmount, decimal PaidAmount, bool IsActive, DateTime CreatedAt); public record OutstandingPaymentsResponse(int InvoiceCount, decimal OutstandingAmount);