using SolutionErp.Domain.Common;

namespace SolutionErp.Domain.Hrm;

// Phase 10.2 G-H2 (Mig 35 — S34 2026-05-27) — Chính sách tăng ca (OT).
// Catalog admin define hệ số OT theo loại ngày + giới hạn max hour.
// 1 OtPolicy hoạt động "default" cho toàn công ty (IsActive=true unique).
//
// Sample seed 1 default:
//   STANDARD: Weekday 1.5x / Weekend 2.0x / Holiday 3.0x
//   MaxHoursPerDay=4h, MaxHoursPerMonth=40h (Luật Lao động VN cap)
//
// Future G-P1 Chấm công attendance + G-O4 OtRequest workflow sẽ reference
// OtPolicy.IsActive=true để calc lương + validate approval.
public class OtPolicy : AuditableEntity
{
    public string Code { get; set; } = string.Empty;       // UNIQUE — "STANDARD"
    public string Name { get; set; } = string.Empty;       // "Chính sách OT chuẩn"

    // Hệ số nhân lương OT decimal(4,2) — vd 1.5 / 2.0 / 3.0.
    public decimal MultiplierWeekday { get; set; }
    public decimal MultiplierWeekend { get; set; }
    public decimal MultiplierHoliday { get; set; }

    // Giới hạn OT — vd Luật Lao động VN max 4h/day, 40h/month, 200h/year.
    public int MaxHoursPerDay { get; set; }
    public int MaxHoursPerMonth { get; set; }
    public int MaxHoursPerYear { get; set; }

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