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

namespace TakeoutSaaS.Domain.Stores.Entities;

/// <summary>
/// 门店员工每周排班。
/// </summary>
public sealed class StoreStaffWeeklySchedule : MultiTenantEntityBase
{
    /// <summary>
    /// 门店 ID。
    /// </summary>
    public long StoreId { get; set; }

    /// <summary>
    /// 员工 ID。
    /// </summary>
    public long StaffId { get; set; }

    /// <summary>
    /// 星期（0=周一，6=周日）。
    /// </summary>
    public int DayOfWeek { get; set; }

    /// <summary>
    /// 班次类型。
    /// </summary>
    public StoreStaffShiftType ShiftType { get; set; } = StoreStaffShiftType.Off;

    /// <summary>
    /// 开始时间（休息时为空）。
    /// </summary>
    public TimeSpan? StartTime { get; set; }

    /// <summary>
    /// 结束时间（休息时为空）。
    /// </summary>
    public TimeSpan? EndTime { get; set; }
}
