using TakeoutSaaS.Domain.Finance.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;

namespace TakeoutSaaS.Domain.Finance.Entities;

/// <summary>
/// 成本配置实体（类别级规则）。
/// </summary>
public sealed class FinanceCostProfile : MultiTenantEntityBase
{
    /// <summary>
    /// 门店 ID。
    /// </summary>
    public long StoreId { get; set; }

    /// <summary>
    /// 成本分类。
    /// </summary>
    public FinanceCostCategory Category { get; set; }

    /// <summary>
    /// 计算模式。
    /// </summary>
    public FinanceCostCalcMode CalcMode { get; set; }

    /// <summary>
    /// 比例值（0-1，Ratio 模式使用）。
    /// </summary>
    public decimal Ratio { get; set; }

    /// <summary>
    /// 固定日金额（FixedDaily 模式使用）。
    /// </summary>
    public decimal FixedDailyAmount { get; set; }

    /// <summary>
    /// 生效开始日期（UTC 日期）。
    /// </summary>
    public DateTime EffectiveFrom { get; set; }

    /// <summary>
    /// 生效结束日期（UTC 日期，含，null 表示长期）。
    /// </summary>
    public DateTime? EffectiveTo { get; set; }

    /// <summary>
    /// 是否启用。
    /// </summary>
    public bool IsEnabled { get; set; } = true;

    /// <summary>
    /// 排序值。
    /// </summary>
    public int SortOrder { get; set; } = 100;
}

