namespace TaxBaik.Domain.Interfaces; using TaxBaik.Domain.Entities; public interface IContractRepository { Task CreateAsync(Contract contract, CancellationToken cancellationToken = default); Task GetByIdAsync(int id, CancellationToken cancellationToken = default); Task> GetByClientIdAsync(int clientId, CancellationToken cancellationToken = default); Task> GetActiveContractsAsync(CancellationToken cancellationToken = default); Task> GetExpiringContractsAsync(int daysAhead = 30, CancellationToken cancellationToken = default); Task UpdateAsync(Contract contract, CancellationToken cancellationToken = default); Task GetMonthlyRecurringRevenueAsync(CancellationToken cancellationToken = default); }