from odoo import fields, models


class XenoHrPersonalDocument(models.Model):
    """Employee-uploaded personal documents (ID, certificates, etc.).
    Employees can upload and view their own; only HR can remove one --
    enforced via ir.model.access (no unlink/write perm for base.group_user
    at all) + a record rule scoping create/read to the employee's own
    record, not by any client-side check."""

    _name = "xeno.hr.personal.document"
    _description = "Employee Personal Document"
    _order = "create_date desc"

    employee_id = fields.Many2one("hr.employee", required=True, index=True, ondelete="cascade")
    name = fields.Char(required=True)
    document = fields.Binary(required=True, attachment=True)
    document_filename = fields.Char()

    def action_xeno_preview(self):
        self.ensure_one()
        return {
            "type": "ir.actions.client",
            "tag": "xeno_hr_personal_document_preview",
            "name": self.name,
            "target": "new",
            "params": {"document_id": self.id},
        }
