using SolutionErp.Domain.Common;

namespace SolutionErp.Domain.Hrm;

// Phase 10.2 G-H2 (Mig 35 — S34 2026-05-27) — Ngày lễ Việt Nam.
// Catalog admin maintain per year. IsRecurring=true (vd 1/1) → auto roll-over
// năm sau (admin bulk clone). Non-recurring (vd Tết Nguyên đán date thay đổi
// theo Âm lịch) → admin tạo mới mỗi năm.
//
// Sample seed 10 ngày lễ VN 2026: Tết Dương lịch (1/1) + Tết Nguyên đán
// (5 ngày 28/1-1/2 đầu năm tới) + Giỗ tổ Hùng Vương (14/3 ÂL ~2026-04-20) +
// 30/4 + 1/5 + 2/9 + Quốc khánh 3/9.
public class Holiday : AuditableEntity
{
    public int Year { get; set; }                          // 2026
    public DateOnly Date { get; set; }                     // UNIQUE composite (Year, Date)
    public string Name { get; set; } = string.Empty;       // "Tết Dương lịch"

    public bool IsRecurring { get; set; }                  // 1/1 lặp mỗi năm, Tết Âm lịch không
    public bool IsPaid { get; set; } = true;               // Có lương / Không lương (mặc định có)

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