"""Approval Engine IAM permission definitions."""

from __future__ import annotations


def register_all() -> None:
    """Register all Approval Engine permissions into the IAM registry."""
    from simorgh.apps.iam.registry import register_permission

    register_permission("approval_engine.request.view",     label="مشاهده درخواست‌های تایید",          description="View approval requests.")
    register_permission("approval_engine.request.create",   label="ایجاد درخواست تایید",              description="Create new approval requests.")
    register_permission("approval_engine.request.update",   label="ویرایش درخواست تایید",             description="Edit approval request fields.")
    register_permission("approval_engine.request.delete",   label="حذف درخواست تایید",                description="Delete approval requests.")
    register_permission("approval_engine.request.approve",  label="تایید درخواست",                    description="Approve approval requests.")
    register_permission("approval_engine.request.reject",   label="رد درخواست تایید",                 description="Reject approval requests.")
    register_permission("approval_engine.request.cancel",   label="لغو درخواست تایید",                description="Cancel approval requests.")
    register_permission("approval_engine.request.delegate", label="تفویض درخواست تایید",              description="Delegate approval requests.")

    register_permission("approval_engine.matrix.view",      label="مشاهده ماتریس‌های تایید",          description="View approval matrices.")
    register_permission("approval_engine.matrix.create",    label="ایجاد ماتریس تایید",               description="Create approval matrices.")
    register_permission("approval_engine.matrix.update",    label="ویرایش ماتریس تایید",              description="Edit approval matrices.")
    register_permission("approval_engine.matrix.delete",    label="حذف ماتریس تایید",                 description="Delete approval matrices.")


PERM_REQUEST_VIEW     = "approval_engine.request.view"
PERM_REQUEST_CREATE   = "approval_engine.request.create"
PERM_REQUEST_UPDATE   = "approval_engine.request.update"
PERM_REQUEST_DELETE   = "approval_engine.request.delete"
PERM_REQUEST_APPROVE  = "approval_engine.request.approve"
PERM_REQUEST_REJECT   = "approval_engine.request.reject"
PERM_REQUEST_CANCEL   = "approval_engine.request.cancel"
PERM_REQUEST_DELEGATE = "approval_engine.request.delegate"
PERM_MATRIX_VIEW      = "approval_engine.matrix.view"
PERM_MATRIX_CREATE    = "approval_engine.matrix.create"
PERM_MATRIX_UPDATE    = "approval_engine.matrix.update"
PERM_MATRIX_DELETE    = "approval_engine.matrix.delete"
