using Distribution.Models; namespace Distribution.Features.SupplierPayment; public record SupplierPaymentAllocationRequest( Guid GoodsReceiptId, decimal AllocatedAmount); public record CreateSupplierPaymentRequest( decimal Amount, PaymentMethod Method, // One or more GRNs this payment covers. Sum of AllocatedAmount must equal Amount. List Allocations, // Cash: required. Guid? BankAccountId = null, // Cheque: required — an Unused page from an Active cheque book. Guid? ChequePageId = null, string? Notes = null, Guid? PaidByUserId = null); public record SupplierPaymentAllocationResponse( Guid GoodsReceiptId, decimal AllocatedAmount); public record SupplierPaymentResponse( Guid Id, Guid SupplierId, decimal Amount, PaymentMethod Method, Guid? BankAccountId, Guid? ChequePageId, string? ChequeNo, DateTime PaidAt, Guid? PaidByUserId, string? Notes, List Allocations, DateTime CreatedAt); public record PagedSupplierPaymentsResponse( List Items, int Page, int PageSize, int Total);