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

namespace TakeoutSaaS.Domain.Stores.Entities;

/// <summary>
/// 门店营业时段配置。
/// </summary>
public sealed class StoreBusinessHour : MultiTenantEntityBase
{
    /// <summary>
    /// 门店标识。
    /// </summary>
    public long StoreId { get; set; }

    /// <summary>
    /// 星期几，0 表示周日。
    /// </summary>
    public DayOfWeek DayOfWeek { get; set; }

    /// <summary>
    /// 时段类型（正常营业、休息、预约等）。
    /// </summary>
    public BusinessHourType HourType { get; set; } = BusinessHourType.Normal;

    /// <summary>
    /// 开始时间（本地时间）。
    /// </summary>
    public TimeSpan StartTime { get; set; }

    /// <summary>
    /// 结束时间（本地时间）。
    /// </summary>
    public TimeSpan EndTime { get; set; }

    /// <summary>
    /// 最大接待容量或单量限制。
    /// </summary>
    public int? CapacityLimit { get; set; }

    /// <summary>
    /// 备注。
    /// </summary>
    public string? Notes { get; set; }
}
