from odoo import fields, models


class XenoAttendanceCodeMap(models.Model):
    _name = "xeno.attendance.code.map"
    _description = "Legacy/duplicate HRSystem employee_code remap for attendance"
    _order = "source_code"

    source_code = fields.Char(
        required=True, index=True,
        help="Raw employee_code as it appears on old scans/devices "
             "(vw_attendance_combined / Transcantime).")
    target_code = fields.Char(
        required=True,
        help="Canonical employee_code in HRSystem's employees table.")
    note = fields.Char()
    active = fields.Boolean(default=True)

    _source_code_uniq = models.Constraint(
        "unique(source_code)",
        "Each source code can only map to one target code.",
    )

    def name_get(self):
        return [(r.id, "%s → %s" % (r.source_code, r.target_code)) for r in self]
