namespace TaxBaik.Domain.Interfaces;

using TaxBaik.Domain.Entities;

public interface ITaxFilingRepository
{
    Task<IEnumerable<TaxFiling>> GetByClientIdAsync(int clientId, CancellationToken ct = default);
    Task<IEnumerable<TaxFiling>> GetUpcomingAsync(int daysAhead, CancellationToken ct = default);
    Task<TaxFiling?> GetByIdAsync(int id, CancellationToken ct = default);
    Task<int> CreateAsync(TaxFiling filing, CancellationToken ct = default);
    Task UpdateAsync(TaxFiling filing, CancellationToken ct = default);
    Task DeleteAsync(int id, CancellationToken ct = default);
}
