<?php

return [
    /*
    | Route name (or prefix) => required permission name for tenant routes.
    | User must have this permission (via role) to access the route.
    | Empty or missing = no permission required (e.g. dashboard for all).
    */
    'route_permission' => [
        'dashboard' => 'dashboard_view',
        'dashboard.self' => 'dashboard_view',
        'employees.index' => 'users_view',
        'employees.create' => 'users_create',
        'employees.store' => 'users_create',
        'employees.export' => 'users_view',
        'employees.show' => 'users_view',
        'employees.edit' => 'users_edit',
        'employees.update' => 'users_edit',
        'employees.destroy' => 'users_delete',
        'employees.salary-revisions.store' => 'users_edit',
        'employees.salary-breakup' => ['payrolls_view', 'finance_self_view'],
        'employees.import.index' => 'users_create',
        'employees.import.store' => 'users_create',
        'employees.import.template' => 'users_create',
        'employees.import.show' => 'users_create',
        'employees.documents.store' => 'documents_create',
        'departments.index' => 'departments_view',
        'departments.create' => 'departments_create',
        'departments.store' => 'departments_create',
        'departments.edit' => 'departments_edit',
        'departments.update' => 'departments_edit',
        'departments.destroy' => 'departments_delete',
        'designations.index' => 'departments_view',
        'designations.create' => 'departments_create',
        'designations.store' => 'departments_create',
        'designations.edit' => 'departments_edit',
        'designations.update' => 'departments_edit',
        'designations.destroy' => 'departments_delete',
        'org-chart.index' => 'users_view',
        'people.dashboard' => 'users_view',
        'hr.dashboard' => 'hr_operations_view',
        'leaves.dashboard' => 'leaves_view',
        'leaves.balance-lookup' => 'leaves_view',
        'leaves.opening-balances.import' => 'leave_types_create',
        'leaves.opening-balances.import.store' => 'leave_types_create',
        'leaves.opening-balances.template' => 'leave_types_create',
        'leaves.policy.update' => 'leave_types_create',
        'attendance.index' => 'attendances_view',
        'attendance.check-in' => 'attendances_view',
        'attendance.check-out' => 'attendances_view',
        'attendance.remote.approve' => ['attendances_approve_regularization', 'attendances_edit'],
        'attendance.remote.reject' => ['attendances_approve_regularization', 'attendances_edit'],
        'attendance-policy.edit' => 'attendances_edit',
        'attendance-policy.update' => 'attendances_edit',
        'attendance.reports' => 'attendances_view',
        'attendance.import.index' => 'attendances_edit',
        'attendance.import.store' => 'attendances_edit',
        'attendance.import.template' => 'attendances_edit',
        'attendance.import.preview' => 'attendances_edit',
        'attendance.import.confirm' => 'attendances_edit',
        'attendance.import.cancel' => 'attendances_edit',
        'attendance.import.errors' => 'attendances_edit',
        'attendance.import.show' => 'attendances_edit',
        'attendance.mark-multi-day' => 'attendances_edit',
        'attendance.mark-bulk' => 'attendances_edit',
        'attendance.bulk' => 'attendances_view',
        'attendance.bulk.toggle' => 'attendances_edit',
        'leave.popup' => 'leaves_view',
        'locations.index' => 'departments_view',
        'locations.create' => 'departments_create',
        'locations.store' => 'departments_create',
        'locations.edit' => 'departments_edit',
        'locations.update' => 'departments_edit',
        'locations.destroy' => 'departments_delete',
        'attendance-regularizations.index' => 'attendances_view',
        'attendance-regularizations.create' => 'attendances_view',
        'attendance-regularizations.store' => 'attendances_view',
        'attendance-regularizations.approve' => ['attendances_approve_regularization', 'attendances_edit'],
        'attendance-regularizations.bulk-review' => ['attendances_approve_regularization', 'attendances_edit'],
        'attendance-regularizations.reject' => ['attendances_approve_regularization', 'attendances_edit'],
        'shifts.index' => 'attendances_view',
        'shifts.create' => 'attendances_create',
        'shifts.store' => 'attendances_create',
        'shifts.edit' => 'attendances_edit',
        'shifts.update' => 'attendances_edit',
        'shifts.destroy' => 'attendances_delete',
        'weekoff-rules.index' => 'attendances_view',
        'weekoff-rules.store' => 'attendances_edit',
        'weekoff-rules.update' => 'attendances_edit',
        'weekoff-rules.assign' => 'attendances_edit',
        'weekoff-rules.history' => 'attendances_view',
        'biometric-devices.index' => 'biometric_devices_view',
        'biometric-devices.create' => 'biometric_devices_manage',
        'biometric-devices.store' => 'biometric_devices_manage',
        'biometric-devices.show' => 'biometric_devices_view',
        'biometric-devices.edit' => 'biometric_devices_manage',
        'biometric-devices.update' => 'biometric_devices_manage',
        'biometric-devices.destroy' => 'biometric_devices_manage',
        'biometric-devices.regenerate' => 'biometric_devices_manage',
        'attendance-punches.index' => 'biometric_devices_view',
        'attendance-punches.retry' => 'biometric_devices_manage',
        'leaves.index' => 'leaves_view',
        'leaves.create' => 'leaves_create',
        'leaves.store' => 'leaves_create',
        'leaves.update-status' => 'leaves_approve_reject',
        'leave-types.manage' => 'leave_types_create',
        'leave-types.update' => 'leave_types_create',
        'leave-types.rules.update' => 'leave_types_create',
        'leave-types.assignments.update' => 'leave_types_create',
        'leave-types.index' => 'leaves_view',
        'leave-types.create' => 'leave_types_create',
        'leave-types.store' => 'leave_types_create',
        'holidays.index' => 'leaves_view',
        'holidays.create' => 'manage_settings',
        'holidays.store' => 'manage_settings',
        'payroll.index' => ['payrolls_view', 'finance_self_view'],
        'payroll.my.payslips.show' => ['payrolls_view', 'finance_self_view'],
        'payroll.my.payslips.download' => ['payrolls_view', 'finance_self_view'],
        'payroll.settings' => 'payrolls_view',
        'payroll.settings.store' => 'payrolls_view',
        'payroll.cycles.month' => 'payrolls_view',
        'payroll.cycles.run' => 'payrolls_view',
        'payroll.cycles.complete' => 'payrolls_view',
        'payroll.cycles.lock' => 'payrolls_view',
        'payroll.cycles.unlock' => 'payrolls_view',
        'payroll.cycles.employees.show' => 'payrolls_view',
        'payroll.cycles.payslips.show' => 'payrolls_view',
        'payroll.cycles.payslips.download' => 'payrolls_view',
        'payroll.cycles.bank-export' => 'payrolls_view',
        'payroll.cycles.export' => 'payrolls_view',
        'payroll.pt-slabs.store' => 'payrolls_view',
        'payroll.pt-slabs.destroy' => 'payrolls_view',
        'payroll.income-tax.preview' => ['payrolls_view', 'finance_self_view'],
        'payroll.income-tax.store' => ['payrolls_view', 'finance_self_view'],
        'payroll.income-tax.submit' => ['payrolls_view', 'finance_self_view'],
        'payroll.income-tax.proof.upload' => ['payrolls_view', 'finance_self_view'],
        'payroll.income-tax.proof.download' => ['payrolls_view', 'finance_self_view'],
        'payroll.income-tax.form16' => ['payrolls_view', 'finance_self_view'],
        'payroll.income-tax.admin.review' => 'payrolls_view',
        'payroll.income-tax.admin.verify' => 'payrolls_view',
        'payroll.income-tax.admin.form16' => 'payrolls_view',
        'salary-groups.index' => 'payrolls_view',
        'salary-groups.create' => 'payrolls_view',
        'salary-groups.store' => 'payrolls_view',
        'salary-groups.edit' => 'payrolls_view',
        'salary-groups.update' => 'payrolls_view',
        'salary-groups.components.catalog' => 'payrolls_view',
        'salary-groups.components.store' => 'payrolls_view',
        'salary-groups.components.destroy' => 'payrolls_view',
        'salary-components.index' => 'payrolls_view',
        'salary-components.create' => 'payrolls_create',
        'salary-components.store' => 'payrolls_create',
        'salary-components.edit' => 'payrolls_edit',
        'salary-components.update' => 'payrolls_edit',
        'salary-components.destroy' => 'payrolls_delete',
        'assets.index' => 'assets_view',
        'assets.create' => 'assets_create',
        'assets.store' => 'assets_create',
        'assets.edit' => 'assets_edit',
        'assets.update' => 'assets_edit',
        'assets.destroy' => 'assets_delete',
        'assets.return' => 'assets_edit',
        'assets.dispose' => 'assets_edit',
        'asset-types.index' => 'assets_view',
        'asset-types.create' => 'assets_create',
        'asset-types.store' => 'assets_create',
        'finance.dashboard' => ['finance_treasury_view', 'finance_view'],
        'finance.self' => 'finance_self_view',
        'finance.team' => 'finance_team_view',
        'finance.operational' => 'finance_operational',
        'finance.my-advances' => 'finance_self_view',
        'accounts.index' => ['finance_treasury_view', 'finance_view'],
        'accounts.create' => ['finance_treasury_view', 'finance_view'],
        'accounts.store' => ['finance_treasury_view', 'finance_view'],
        'accounts.edit' => 'finance_edit',
        'accounts.update' => 'finance_edit',
        'accounts.destroy' => 'finance_delete',
        'expenses.index' => ['finance_view', 'finance_treasury_view', 'finance_operational', 'finance_team_view', 'finance_self_view', 'expenses_create_own'],
        'expenses.create' => ['finance_view', 'finance_treasury_view', 'finance_operational', 'finance_team_view', 'finance_self_view', 'expenses_create_own'],
        'expenses.store' => ['finance_view', 'finance_treasury_view', 'finance_operational', 'finance_team_view', 'finance_self_view', 'expenses_create_own'],
        'expenses.edit' => ['finance_view', 'finance_treasury_view', 'finance_operational', 'finance_team_view', 'finance_self_view', 'expenses_create_own'],
        'expenses.update' => ['finance_view', 'finance_treasury_view', 'finance_operational', 'finance_team_view', 'finance_self_view', 'expenses_create_own'],
        'expenses.update-status' => ['finance_edit', 'expenses_approve'],
        'expenses.destroy' => ['finance_delete', 'expenses_create_own'],
        'deposits.index' => ['finance_treasury_view', 'finance_view'],
        'deposits.create' => ['finance_treasury_view', 'finance_view'],
        'deposits.store' => ['finance_treasury_view', 'finance_view'],
        'deposits.edit' => 'finance_edit',
        'deposits.update' => 'finance_edit',
        'deposits.destroy' => 'finance_delete',
        'documents.index' => 'documents_view',
        'documents.dashboard' => 'documents_view',
        'documents.create' => 'documents_create',
        'documents.store' => 'documents_create',
        'documents.download' => 'documents_view',
        'documents.destroy' => ['documents_edit', 'documents_create'],
        'my-hr-records.index' => ['complaints_view_own', 'warnings_view_own', 'appreciations_view_own', 'promotions_view_own', 'terminations_view_own'],
        'warnings.index' => ['hr_operations_view', 'warnings_view_own'],
        'warnings.create' => 'hr_operations_view',
        'warnings.store' => 'hr_operations_view',
        'complaints.index' => ['hr_operations_view', 'complaints_view_own'],
        'complaints.create' => ['hr_operations_view', 'complaints_create_own'],
        'complaints.store' => ['hr_operations_view', 'complaints_create_own'],
        'complaints.edit' => 'hr_operations_view',
        'complaints.update' => 'hr_operations_view',
        'complaints.destroy' => 'hr_operations_view',
        'promotions.index' => ['hr_operations_view', 'promotions_view_own'],
        'promotions.create' => 'hr_operations_view',
        'promotions.store' => 'hr_operations_view',
        'offboardings.index' => 'hr_operations_view',
        'offboardings.create' => 'hr_operations_view',
        'offboardings.store' => 'hr_operations_view',
        'offboardings.show' => 'hr_operations_view',
        'offboardings.checklist.update' => 'hr_operations_view',
        'fnf.show' => ['hr_operations_view', 'finance_operational', 'finance_view', 'finance_treasury_view'],
        'fnf.update' => ['hr_operations_view', 'finance_edit'],
        'fnf.recalculate' => ['hr_operations_view', 'finance_edit'],
        'fnf.approve' => ['hr_operations_view', 'finance_edit'],
        'fnf.mark-paid' => ['hr_operations_view', 'finance_edit'],
        'fnf.download' => ['hr_operations_view', 'finance_operational', 'finance_view', 'finance_treasury_view'],
        'announcements.index' => 'announcements_view',
        'announcements.create' => 'announcements_view',
        'announcements.store' => 'announcements_view',
        'announcements.edit' => 'announcements_view',
        'announcements.update' => 'announcements_view',
        'announcements.attachments.download' => 'announcements_view',
        'reports.index' => 'view_reports',
        'reports.performance.export' => 'performance_view',
        'reports.audit.export' => 'manage_settings',
        'reports.expenses.export' => ['finance_view', 'finance_treasury_view', 'finance_operational', 'finance_team_view', 'finance_self_view', 'expenses_create_own'],
        'settings.index' => 'manage_settings',
        'settings.home' => 'manage_settings',
        'settings.store' => 'manage_settings',
        'settings.logo.store' => 'manage_settings',
        'settings.logo.destroy' => 'manage_settings',
        'settings.email' => 'manage_settings',
        'settings.email.store' => 'manage_settings',
        'settings.email.test' => 'manage_settings',
        'settings.profile' => 'dashboard_view',
        'settings.profile.update' => 'dashboard_view',
        'settings.profile.basic.update' => 'dashboard_view',
        'settings.profile.work.update' => 'dashboard_view',
        'settings.profile.bank.update' => 'dashboard_view',
        'settings.profile.intro.update' => 'dashboard_view',
        'settings.profile.two-factor.enable' => 'dashboard_view',
        'settings.profile.two-factor.disable' => 'dashboard_view',
        'settings.company.update' => 'manage_settings',
        'settings.security.update' => 'manage_settings',
        'tenant-roles.index' => 'roles_view',
        'tenant-roles.create' => 'roles_create',
        'tenant-roles.store' => 'roles_create',
        'tenant-roles.edit' => 'roles_edit',
        'tenant-roles.update' => 'roles_edit',
        'tenant-roles.destroy' => 'roles_delete',
        'subscription.request' => 'manage_settings',
        'subscription.request.store' => 'manage_settings',
        'subscription.quote' => 'manage_settings',
        'subscription.checkout.order' => 'manage_settings',
        'subscription.checkout.verify' => 'manage_settings',
        // Phase 4
        'resignations.self.create' => 'dashboard_view',
        'resignations.self.store' => 'dashboard_view',
        'company-policies.portal' => 'dashboard_view',
        'company-policies.show' => 'dashboard_view',
        'company-policies.index' => 'hr_operations_view',
        'company-policies.create' => 'hr_operations_view',
        'company-policies.store' => 'hr_operations_view',
        'company-policies.edit' => 'hr_operations_view',
        'company-policies.update' => 'hr_operations_view',
        'letter-head-templates.index' => 'documents_view',
        'letter-head-templates.create' => 'documents_view',
        'letter-head-templates.store' => 'documents_view',
        'letter-head-templates.edit' => 'documents_view',
        'letter-head-templates.update' => 'documents_view',
        'vendors.index' => ['finance_treasury_view', 'finance_view'],
        'vendors.create' => ['finance_treasury_view', 'finance_view'],
        'vendors.store' => ['finance_treasury_view', 'finance_view'],
        'vendors.edit' => ['finance_treasury_view', 'finance_view'],
        'vendors.update' => ['finance_treasury_view', 'finance_view'],
        'resignations.index' => 'hr_operations_view',
        'resignations.create' => 'hr_operations_view',
        'resignations.store' => 'hr_operations_view',
        'resignations.edit' => 'hr_operations_view',
        'resignations.update' => 'hr_operations_view',
        'resignations.update-status' => 'hr_operations_view',
        'terminations.index' => ['hr_operations_view', 'terminations_view_own'],
        'terminations.create' => 'hr_operations_view',
        'terminations.store' => 'hr_operations_view',
        'terminations.edit' => 'hr_operations_view',
        'terminations.update' => 'hr_operations_view',
        'payees.index' => ['finance_treasury_view', 'finance_view'],
        'payees.create' => ['finance_treasury_view', 'finance_view'],
        'payees.store' => ['finance_treasury_view', 'finance_view'],
        'payees.edit' => ['finance_treasury_view', 'finance_view'],
        'payees.update' => ['finance_treasury_view', 'finance_view'],
        'payers.index' => ['finance_treasury_view', 'finance_view'],
        'payers.create' => ['finance_treasury_view', 'finance_view'],
        'payers.store' => ['finance_treasury_view', 'finance_view'],
        'payers.edit' => ['finance_treasury_view', 'finance_view'],
        'payers.update' => ['finance_treasury_view', 'finance_view'],
        'deposit-categories.index' => ['finance_treasury_view', 'finance_view'],
        'deposit-categories.create' => ['finance_treasury_view', 'finance_view'],
        'deposit-categories.store' => ['finance_treasury_view', 'finance_view'],
        'deposit-categories.edit' => ['finance_treasury_view', 'finance_view'],
        'deposit-categories.update' => ['finance_treasury_view', 'finance_view'],
        'forms.index' => 'documents_view',
        'forms.create' => 'documents_view',
        'forms.store' => 'documents_view',
        'forms.edit' => 'documents_view',
        'forms.update' => 'documents_view',
        'forms.update-status' => 'documents_view',
        'appreciations.index' => ['hr_operations_view', 'appreciations_view_own'],
        'appreciations.create' => 'hr_operations_view',
        'appreciations.store' => 'hr_operations_view',
        'appreciations.edit' => 'hr_operations_view',
        'appreciations.update' => 'hr_operations_view',
        'appreciations.destroy' => 'hr_operations_delete',
        'company-policies.destroy' => 'hr_operations_view',
        'resignations.destroy' => 'hr_operations_view',
        'terminations.destroy' => 'hr_operations_view',
        'vendors.destroy' => ['finance_treasury_view', 'finance_view'],
        'payees.destroy' => ['finance_treasury_view', 'finance_view'],
        'payers.destroy' => ['finance_treasury_view', 'finance_view'],
        'deposit-categories.destroy' => ['finance_treasury_view', 'finance_view'],
        'forms.destroy' => 'documents_view',
        'letter-head-templates.preview' => 'documents_view',
        'letter-head-templates.pdf' => 'documents_view',
        'letter-head-templates.destroy' => 'documents_view',
        'forms.portal' => 'dashboard_view',
        'forms.fill' => 'dashboard_view',
        'forms.submit' => 'dashboard_view',
        'form-submissions.index' => 'documents_view',
        'form-submissions.show' => 'documents_view',
        'form-submissions.export' => 'documents_view',
        'reports.form-submissions.export' => 'documents_view',
        'generated-letters.index' => 'documents_view',
        'generated-letters.create' => 'documents_view',
        'generated-letters.store' => 'documents_view',
        'generated-letters.show' => 'documents_view',
        'generated-letters.pdf' => 'documents_view',
        'settings.audit' => 'manage_settings',
        'recruitment.dashboard' => 'recruitment_view',
        'recruitment.open-roles' => ['recruitment_refer', 'recruitment_view'],
        'recruitment.my-referrals' => ['recruitment_referrals_view', 'recruitment_refer'],
        'recruitment.my-referrals.show' => ['recruitment_referrals_view', 'recruitment_refer'],
        'recruitment.my-interviews' => 'dashboard_view',
        'job-postings.index' => 'recruitment_view',
        'job-postings.create' => 'recruitment_create',
        'job-postings.store' => 'recruitment_create',
        'job-postings.edit' => 'recruitment_edit',
        'job-postings.update' => 'recruitment_edit',
        'job-postings.destroy' => 'recruitment_delete',
        'applicants.index' => 'recruitment_view',
        'applicants.create' => 'recruitment_create',
        'applicants.store' => 'recruitment_create',
        'applicants.refer' => 'recruitment_refer',
        'applicants.refer.store' => 'recruitment_refer',
        'applicants.resume.download' => ['recruitment_view', 'recruitment_referrals_view', 'recruitment_refer', 'dashboard_view'],
        'applicants.show' => 'recruitment_view',
        'applicants.edit' => 'recruitment_edit',
        'applicants.update' => 'recruitment_edit',
        'applicants.update-stage' => 'recruitment_edit',
        'applicants.destroy' => 'recruitment_delete',
        'interviews.index' => ['recruitment_view', 'dashboard_view'],
        'interviews.create' => 'recruitment_create',
        'interviews.store' => 'recruitment_create',
        'interviews.edit' => 'recruitment_edit',
        'interviews.update' => 'recruitment_edit',
        'interviews.destroy' => 'recruitment_delete',
        'performance.dashboard' => 'performance_view',
        'goals.index' => 'performance_view',
        'goals.create' => 'performance_create',
        'goals.store' => 'performance_create',
        'goals.edit' => 'performance_edit',
        'goals.update' => 'performance_edit',
        'goals.destroy' => 'performance_delete',
        'performance-reviews.index' => 'performance_view',
        'performance-reviews.create' => 'performance_create',
        'performance-reviews.store' => 'performance_create',
        'performance-reviews.edit' => 'performance_edit',
        'performance-reviews.update' => 'performance_edit',
        'performance-reviews.destroy' => 'performance_delete',
        'performance-cycles.index' => 'performance_view',
        'performance-cycles.create' => 'performance_create',
        'performance-cycles.store' => 'performance_create',
        'performance-cycles.show' => 'performance_view',
        'performance-cycles.edit' => 'performance_edit',
        'performance-cycles.update' => 'performance_edit',
        'performance-cycles.destroy' => 'performance_delete',
        'performance-cycles.launch' => 'performance_edit',
        'performance-cycles.close' => 'performance_edit',
        'api.notifications.feed' => 'dashboard_view',
        'api.notifications.mark-read' => 'dashboard_view',
        'api.notifications.destroy' => 'dashboard_view',
        'api.notifications.mark-all-read' => 'dashboard_view',
        'api.expenses.index' => ['finance_view', 'finance_treasury_view', 'finance_operational', 'finance_team_view', 'finance_self_view', 'expenses_create_own'],
        'api.expenses.store' => ['finance_view', 'finance_treasury_view', 'finance_operational', 'finance_team_view', 'finance_self_view', 'expenses_create_own'],
        'api.expenses.show' => ['finance_view', 'finance_treasury_view', 'finance_operational', 'finance_team_view', 'finance_self_view', 'expenses_create_own'],
        'api.leaves.update-status' => 'leaves_approve_reject',
        'api.payroll.bank-export' => 'payrolls_view',
        'api.expenses.update-status' => ['finance_edit', 'expenses_approve', 'finance_view', 'finance_treasury_view', 'finance_operational', 'finance_team_view'],
        'api.finance.home' => ['finance_view', 'finance_treasury_view', 'finance_operational', 'finance_team_view', 'finance_self_view', 'expenses_create_own'],
        'api.finance.self' => ['finance_self_view', 'expenses_create_own'],
        'api.finance.team' => 'finance_team_view',
        'api.finance.operational' => ['finance_operational', 'finance_treasury_view', 'finance_view'],
        'api.finance.my-advances' => ['finance_self_view', 'expenses_create_own'],
        'api.recruitment.home' => ['recruitment_view', 'recruitment_refer', 'recruitment_referrals_view'],
        'api.recruitment.open-roles' => ['recruitment_refer', 'recruitment_view'],
        'api.recruitment.my-referrals' => ['recruitment_referrals_view', 'recruitment_refer'],
        'api.recruitment.my-referrals.show' => ['recruitment_referrals_view', 'recruitment_refer'],
        'api.recruitment.my-interviews' => 'dashboard_view',
        'api.recruitment.refer.store' => 'recruitment_refer',
        'api.recruitment.pipeline' => 'recruitment_view',
        'api.recruitment.referral-leaderboard' => 'recruitment_view',
        'api.hr.resignations' => ['hr_operations_view', 'dashboard_view'],
        'api.hr.resignations.show' => ['hr_operations_view', 'dashboard_view'],
        'api.hr.offboardings' => ['hr_operations_view', 'dashboard_view'],
        'api.hr.offboardings.show' => ['hr_operations_view', 'dashboard_view'],
        'api.hr.performance-reviews' => 'performance_view',
        'api.hr.performance-cycles' => 'performance_view',
        'api.hr.deposits' => ['finance_treasury_view', 'finance_view'],
        'api.hr.generated-letters' => 'documents_view',
        'pre-payments.index' => ['finance_operational', 'finance_treasury_view', 'finance_view'],
        'pre-payments.create' => 'finance_create',
        'pre-payments.store' => 'finance_create',
        'pre-payments.edit' => 'finance_edit',
        'pre-payments.update' => 'finance_edit',
        'pre-payments.cancel' => 'finance_edit',
        'pre-payments.destroy' => 'finance_delete',
        'api.hr.pre-payments' => ['finance_operational', 'finance_treasury_view', 'finance_view'],
        'api.hr.pre-payments.store' => 'finance_create',
        'reports.saved.index' => 'view_reports',
        'reports.saved.store' => 'view_reports',
        'reports.saved.run' => 'view_reports',
        'reports.saved.destroy' => 'view_reports',
        'company-policies.acknowledge' => 'dashboard_view',
        'company-policies.acknowledgments' => 'hr_operations_view',
        'form-submissions.update-status' => 'documents_view',
        'generated-letters.edit' => 'documents_view',
        'generated-letters.update' => 'documents_view',
        'settings.profile.two-factor.enable-totp' => 'dashboard_view',
        'settings.profile.export-data' => 'dashboard_view',
        'settings.profile.sessions.revoke' => 'dashboard_view',
        'api.forms.index' => 'dashboard_view',
        'api.forms.show' => 'dashboard_view',
        'api.forms.submit' => 'dashboard_view',
        'api.forms.my-submissions' => 'dashboard_view',
        'api.form-submissions.index' => 'documents_view',
        'api.form-submissions.show' => 'documents_view',

        // API employees
        'api.employees.index' => 'users_view',
        'api.employees.store' => 'users_create',
        'api.employees.show' => 'users_view',
        'api.employees.update' => 'users_edit',
        'api.employees.destroy' => 'users_delete',

        // API leaves
        'api.leave-types.index' => 'leaves_create',
        'api.leaves.index' => 'leaves_view',
        'api.leaves.store' => 'leaves_create',
        'api.leaves.show' => 'leaves_view',
        'api.leaves.update' => 'leaves_create',
        'api.leaves.destroy' => 'leaves_create',

        // API attendance
        'api.attendance.index' => 'attendances_view',
        'api.attendance.show' => 'attendances_view',
        'api.attendance.today' => 'attendances_view',
        'api.attendance.policy' => 'attendances_view',
        'api.attendance.clock-in' => 'attendances_view',
        'api.attendance.clock-out' => 'attendances_view',
        'api.attendance.login' => 'attendances_view',
        'api.attendance.logout' => 'attendances_view',
        'api.attendance.settings' => 'attendances_edit',
        'api.attendance.settings.update' => 'attendances_edit',

        // API locations
        'api.locations.index' => 'departments_view',
        'api.locations.store' => 'departments_create',
        'api.locations.show' => 'departments_view',
        'api.locations.update' => 'departments_edit',
        'api.locations.destroy' => 'departments_delete',

        // API payroll
        'api.payroll.index' => 'payrolls_view',
        'api.payroll.show' => 'payrolls_view',

        // API HR generated letters show
        'api.hr.generated-letters.show' => 'documents_view',

        // API face (self-service / managers)
        'api.face.attendance' => 'attendances_view',
        'api.face.sync' => 'attendances_view',
        'api.face.register' => 'attendances_view',
    ],

    /*
    | Named routes under these prefixes deny access when not listed in route_permission.
    */
    'fail_closed_prefixes' => [
        'api.',
    ],

    /*
    | Named routes that skip permission checks (still require auth + tenant middleware).
    */
    'permission_exempt_routes' => [
        // Self-service / mobile helpers without dedicated permission names
    ],
];
