namespace Purrse.Core.DTOs; public record CreateLoanDetailRequest( decimal OriginalBalance, decimal InterestRate, int TermMonths, decimal MonthlyPayment, DateTime OriginationDate, DateTime MaturityDate, decimal? EscrowAmount, decimal? ExtraPayment ); public record LoanDetailResponse( Guid Id, Guid AccountId, string AccountName, decimal OriginalBalance, decimal CurrentBalance, decimal InterestRate, int TermMonths, decimal MonthlyPayment, DateTime OriginationDate, DateTime MaturityDate, decimal? EscrowAmount, decimal? ExtraPayment, List AmortizationSchedule ); public record AmortizationEntryResponse( int PaymentNumber, DateTime PaymentDate, decimal PaymentAmount, decimal PrincipalAmount, decimal InterestAmount, decimal? EscrowAmount, decimal RemainingBalance ); public record LoanDefaultsResponse( decimal OriginalBalance, decimal InterestRate, int TermMonths, bool HasSyncData ); public record PayoffScenarioRequest(decimal? ExtraMonthlyPayment, decimal? LumpSumPayment, DateTime? LumpSumDate); public record PayoffScenarioResponse( DateTime OriginalPayoffDate, DateTime NewPayoffDate, decimal TotalInterestOriginal, decimal TotalInterestNew, decimal InterestSaved, int MonthsSaved, List NewSchedule );