using Distribution.Models; namespace Distribution.Features.Payment; public record CreatePaymentRequest( decimal Amount, PaymentMethod Method, EntryMode EntryMode = EntryMode.RealTime, // Cash: required. Cheque: optional (used as the deposit account hint if provided). Guid? BankAccountId = null, // Cheque: required. string? ChequeNumber = null, DateTime? ChequeDate = null, // Cheque: optional metadata forwarded to the auto-created ReceivedCheque. string? DrawerBankName = null, string? AccountHolderName = null, Guid? CollectedByUserId = null); public record PaymentResponse( Guid Id, Guid InvoiceId, decimal Amount, PaymentMethod Method, EntryMode EntryMode, Guid? BankAccountId, Guid? ReceivedChequeId, string? ChequeNumber, DateTime? ChequeDate, DateTime CollectedAt, Guid CollectedBy, Guid? RecordedBy, DateTime CreatedAt);