using TakeoutSaaS.Domain.Finance.Enums;
using TakeoutSaaS.Domain.Finance.Models;
namespace TakeoutSaaS.Domain.Finance.Repositories;
///
/// 成本管理仓储契约。
///
public interface IFinanceCostRepository
{
///
/// 获取成本录入页月度快照。
///
Task GetMonthSnapshotAsync(
long tenantId,
FinanceCostDimension dimension,
long? storeId,
DateTime costMonth,
CancellationToken cancellationToken = default);
///
/// 保存月度成本录入快照。
///
Task SaveMonthSnapshotAsync(
long tenantId,
FinanceCostDimension dimension,
long? storeId,
DateTime costMonth,
IReadOnlyList categories,
CancellationToken cancellationToken = default);
///
/// 获取成本分析页快照。
///
Task GetAnalysisSnapshotAsync(
long tenantId,
FinanceCostDimension dimension,
long? storeId,
DateTime costMonth,
int trendMonthCount,
CancellationToken cancellationToken = default);
}