using Distribution.Models; namespace Distribution.Features.RecurringExpense; public record CreateRecurringExpenseRequest( string Name, Guid CategoryId, Guid? WarehouseId, Guid? VendorId, decimal Amount, string? Payee, string? Description, RecurringFrequency Frequency, int? DayOfMonth, int? DayOfWeek, DateTime StartDate, DateTime? EndDate, bool AutoPost); public record UpdateRecurringExpenseRequest( string Name, Guid CategoryId, Guid? WarehouseId, Guid? VendorId, decimal Amount, string? Payee, string? Description, RecurringFrequency Frequency, int? DayOfMonth, int? DayOfWeek, DateTime StartDate, DateTime? EndDate, bool AutoPost); public record RecurringExpenseResponse( Guid Id, string Name, Guid CategoryId, string CategoryName, Guid? WarehouseId, string? WarehouseName, Guid? VendorId, string? VendorName, decimal Amount, string? Payee, string? Description, RecurringFrequency Frequency, int? DayOfMonth, int? DayOfWeek, DateTime StartDate, DateTime? EndDate, DateTime NextRunDate, bool AutoPost, bool IsPaused, bool IsActive, DateTime CreatedAt); public record PagedRecurringExpensesResponse(List Items, int Page, int PageSize, int Total); public record RunDueResponse(int Generated, List ExpenseIds);