using TakeoutSaaS.Domain.Finance.Enums; using TakeoutSaaS.Domain.Finance.Models; using TakeoutSaaS.Domain.Orders.Enums; using TakeoutSaaS.Domain.Payments.Enums; namespace TakeoutSaaS.Domain.Finance.Repositories; /// /// 财务交易流水仓储契约。 /// public interface IFinanceTransactionRepository { /// /// 查询交易流水分页。 /// Task SearchPageAsync( long tenantId, long storeId, DateTime? startAt, DateTime? endAt, FinanceTransactionType? transactionType, DeliveryType? deliveryType, PaymentMethod? paymentMethod, string? keyword, int page, int pageSize, CancellationToken cancellationToken = default); /// /// 查询交易流水统计。 /// Task GetStatsAsync( long tenantId, long storeId, DateTime? startAt, DateTime? endAt, FinanceTransactionType? transactionType, DeliveryType? deliveryType, PaymentMethod? paymentMethod, string? keyword, CancellationToken cancellationToken = default); /// /// 查询交易流水详情。 /// Task GetDetailAsync( long tenantId, long storeId, FinanceTransactionSourceType sourceType, long sourceId, CancellationToken cancellationToken = default); /// /// 查询导出数据。 /// Task> ListForExportAsync( long tenantId, long storeId, DateTime? startAt, DateTime? endAt, FinanceTransactionType? transactionType, DeliveryType? deliveryType, PaymentMethod? paymentMethod, string? keyword, CancellationToken cancellationToken = default); /// /// 查询到账概览统计。 /// Task GetSettlementStatsAsync( long tenantId, long storeId, DateTime currentUtc, CancellationToken cancellationToken = default); /// /// 查询到账账户信息。 /// Task GetSettlementAccountAsync( long tenantId, CancellationToken cancellationToken = default); /// /// 查询到账汇总分页。 /// Task SearchSettlementPageAsync( long tenantId, long storeId, DateTime? startAt, DateTime? endAt, PaymentMethod? paymentMethod, int page, int pageSize, CancellationToken cancellationToken = default); /// /// 查询到账明细。 /// Task> GetSettlementDetailsAsync( long tenantId, long storeId, DateTime arrivedDate, PaymentMethod paymentMethod, int take, CancellationToken cancellationToken = default); /// /// 查询到账导出数据。 /// Task> ListSettlementForExportAsync( long tenantId, long storeId, DateTime? startAt, DateTime? endAt, PaymentMethod? paymentMethod, CancellationToken cancellationToken = default); }