"""DMS documents — IAM permission definitions."""

from __future__ import annotations

from simorgh.apps.iam.registry import register_permission

# Document type permissions
PERM_DOCTYPE_VIEW = "dms.document_type.view"
PERM_DOCTYPE_MANAGE = "dms.document_type.manage"

# Document permissions
PERM_DOCUMENT_VIEW = "dms.document.view"
PERM_DOCUMENT_CREATE = "dms.document.create"
PERM_DOCUMENT_MANAGE = "dms.document.manage"
PERM_DOCUMENT_PUBLISH = "dms.document.publish"


def register_all() -> None:
    register_permission(
        codename=PERM_DOCTYPE_VIEW,
        label="DMS: View document types",
        description="Allows listing and retrieving document type definitions.",
    )
    register_permission(
        codename=PERM_DOCTYPE_MANAGE,
        label="DMS: Manage document types",
        description="Allows creating, updating, and deleting document types.",
    )
    register_permission(
        codename=PERM_DOCUMENT_VIEW,
        label="DMS: View documents",
        description="Allows listing and reading documents.",
    )
    register_permission(
        codename=PERM_DOCUMENT_CREATE,
        label="DMS: Create documents",
        description="Allows creating new documents and uploading versions.",
    )
    register_permission(
        codename=PERM_DOCUMENT_MANAGE,
        label="DMS: Manage documents",
        description="Allows updating and deleting documents.",
    )
    register_permission(
        codename=PERM_DOCUMENT_PUBLISH,
        label="DMS: Publish documents",
        description="Allows promoting a draft document version to published.",
    )
