"""
PREPOC ERP - Centralized Permission Registry (Backend)
Defines all valid permission strings used across the backend application.
"""

class Permissions:
    class HR:
        EMPLOYEE_VIEW = "hr.employee.view"
        EMPLOYEE_CREATE = "hr.employee.create"
        EMPLOYEE_UPDATE = "hr.employee.update"
        EMPLOYEE_DELETE = "hr.employee.delete"
        LEAVE_APPROVE = "hr.leave.approve"
        ATTENDANCE_MANAGE = "hr.attendance.manage"

    class Finance:
        INVOICE_VIEW = "finance.invoice.view"
        INVOICE_CREATE = "finance.invoice.create"
        INVOICE_UPDATE = "finance.invoice.update"
        INVOICE_DELETE = "finance.invoice.delete"
        PAYMENT_APPROVE = "finance.payment.approve"
        EXPENSE_MANAGE = "finance.expense.manage"

    class Payroll:
        RUN_GENERATE = "payroll.run.generate"
        RUN_APPROVE = "payroll.run.approve"
        PAYSLIP_VIEW = "payroll.payslip.view"
        SALARY_MANAGE = "payroll.salary.manage"

    class CRM:
        LEAD_VIEW = "crm.lead.view"
        LEAD_CREATE = "crm.lead.create"
        LEAD_ASSIGN = "crm.lead.assign"
        LEAD_CONVERT = "crm.lead.convert"
        ACTIVITY_CREATE = "crm.activity.create"

    class Project:
        VIEW = "project.view"
        CREATE = "project.create"
        UPDATE = "project.update"
        DELETE = "project.delete"
        ASSIGN = "project.assign"
        TASK_UPDATE = "project.task.update"

    class System:
        SETTINGS_MANAGE = "system.settings.manage"
        USERS_MANAGE = "users.manage"
        ORGANIZATIONS_MANAGE = "organizations.manage"
        AUDIT_VIEW = "audit.view"
        PERMISSIONS_MANAGE = "permissions.manage"

    class Employee:
        SELF_VIEW = "employee.self.view"
        SELF_UPDATE = "employee.self.update"
