<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <!-- Own record, OR the request's own chosen Supervisor/Head of
         Department (per-request routing, not a company-configured chain;
         the employee picks both on the request itself). Field-level write
         locking (which fields, in which state) is enforced in
         hr_overtime_request.py's write() override, not here. -->
    <record id="rule_hr_overtime_request_own_or_approver" model="ir.rule">
        <field name="name">OT Request: own / configured approver</field>
        <field name="model_id" ref="model_hr_overtime_request"/>
        <field name="domain_force">[
            '|', '|',
                ('employee_id.user_id', '=', user.id),
                ('supervisor_id.user_id', '=', user.id),
                ('head_of_department_id.user_id', '=', user.id),
        ]</field>
        <field name="groups" eval="[(4, ref('base.group_user'))]"/>
    </record>

    <record id="rule_hr_overtime_request_hr" model="ir.rule">
        <field name="name">OT Request: HR/Payroll sees all</field>
        <field name="model_id" ref="model_hr_overtime_request"/>
        <field name="domain_force">[(1, '=', 1)]</field>
        <field name="groups" eval="[(4, ref('hr_holidays.group_hr_holidays_user'))]"/>
    </record>

    <!-- Own timesheet, OR the week's own resolved Supervisor/HOD (from its
         linked days' Supervisor/Head of Department; same per-request
         routing convention as above). -->
    <record id="rule_hr_overtime_timesheet_own_or_approver" model="ir.rule">
        <field name="name">OT Timesheet: own / configured approver</field>
        <field name="model_id" ref="model_hr_overtime_timesheet"/>
        <field name="domain_force">[
            '|', '|',
                ('employee_id.user_id', '=', user.id),
                ('supervisor_id.user_id', '=', user.id),
                ('head_of_department_id.user_id', '=', user.id),
        ]</field>
        <field name="groups" eval="[(4, ref('base.group_user'))]"/>
    </record>

    <record id="rule_hr_overtime_timesheet_hr" model="ir.rule">
        <field name="name">OT Timesheet: HR/Payroll sees all</field>
        <field name="model_id" ref="model_hr_overtime_timesheet"/>
        <field name="domain_force">[(1, '=', 1)]</field>
        <field name="groups" eval="[(4, ref('hr_holidays.group_hr_holidays_user'))]"/>
    </record>
</odoo>
