using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using TakeoutSaaS.Domain.Tenants.Entities;
using TakeoutSaaS.Domain.Tenants.Enums;
namespace TakeoutSaaS.Domain.Tenants.Repositories;
///
/// 租户账单仓储。
///
public interface ITenantBillingRepository
{
Task> SearchAsync(
long tenantId,
TenantBillingStatus? status,
DateTime? from,
DateTime? to,
CancellationToken cancellationToken = default);
Task FindByIdAsync(long tenantId, long billingId, CancellationToken cancellationToken = default);
Task FindByStatementNoAsync(long tenantId, string statementNo, CancellationToken cancellationToken = default);
Task AddAsync(TenantBillingStatement bill, CancellationToken cancellationToken = default);
Task UpdateAsync(TenantBillingStatement bill, CancellationToken cancellationToken = default);
Task SaveChangesAsync(CancellationToken cancellationToken = default);
}