using SolutionErp.Domain.Common;

namespace SolutionErp.Domain.Hrm;

// Phase 10.2 G-H2 (Mig 35 — S34 2026-05-27) — Ca làm việc.
// Catalog admin define ca làm — assign cho NV qua EmployeeProfile (defer Phase 1.5
// nếu user cần per-NV shift assignment) hoặc default "HC" cho toàn công ty.
//
// Sample seed 3 ca:
//   HC (Hành chính) — 8:00-17:00 Mon-Fri, nghỉ trưa 60 phút
//   CA1 (Ca sáng)   — 6:00-14:00 Mon-Sat, nghỉ trưa 30 phút
//   CA2 (Ca chiều)  — 14:00-22:00 Mon-Sat, nghỉ giữa ca 30 phút
public class ShiftPattern : AuditableEntity
{
    public string Code { get; set; } = string.Empty;       // UNIQUE — "HC", "CA1", "CA2"
    public string Name { get; set; } = string.Empty;       // "Hành chính", "Ca sáng"

    public TimeOnly StartTime { get; set; }                // 08:00
    public TimeOnly EndTime { get; set; }                  // 17:00

    public int BreakMinutes { get; set; }                  // Phút nghỉ trưa / giữa ca

    // Comma-separated weekday codes: "Mon,Tue,Wed,Thu,Fri" cho HC,
    // "Mon,Tue,Wed,Thu,Fri,Sat" cho CA1/CA2 (working Sat).
    // FE Designer multi-select chuyển → comma string. Flexibility cao hơn bitmask int.
    public string WorkDays { get; set; } = string.Empty;

    public bool IsActive { get; set; } = true;
    public string? Description { get; set; }
}
