using MediatR; using TakeoutSaaS.Application.App.Finance.Cost.Dto; using TakeoutSaaS.Domain.Finance.Enums; namespace TakeoutSaaS.Application.App.Finance.Cost.Commands; /// /// 保存成本录入数据。 /// public sealed class SaveFinanceCostEntryCommand : IRequest { /// /// 统计维度。 /// public FinanceCostDimension Dimension { get; init; } = FinanceCostDimension.Tenant; /// /// 门店标识(门店维度必填)。 /// public long? StoreId { get; init; } /// /// 目标月份(UTC 每月第一天)。 /// public DateTime CostMonth { get; init; } = DateTime.UtcNow; /// /// 成本分类列表。 /// public IReadOnlyList Categories { get; init; } = []; } /// /// 成本分类保存项。 /// public sealed class SaveFinanceCostCategoryCommandItem { /// /// 成本分类。 /// public FinanceCostCategory Category { get; init; } /// /// 分类总金额。 /// public decimal TotalAmount { get; init; } /// /// 分类明细项。 /// public IReadOnlyList Items { get; init; } = []; } /// /// 成本明细保存项。 /// public sealed class SaveFinanceCostDetailCommandItem { /// /// 明细标识(编辑时透传,可为空)。 /// public long? ItemId { get; init; } /// /// 明细名称。 /// public string ItemName { get; init; } = string.Empty; /// /// 金额。 /// public decimal Amount { get; init; } /// /// 数量(人工类可用)。 /// public decimal? Quantity { get; init; } /// /// 单价(人工类可用)。 /// public decimal? UnitPrice { get; init; } /// /// 排序值。 /// public int SortOrder { get; init; } }