"""DMS records — IAM permission definitions."""

from __future__ import annotations

from simorgh.apps.iam.registry import register_permission

# Retention policy permissions
PERM_RETENTION_VIEW = "dms.retention.view"
PERM_RETENTION_MANAGE = "dms.retention.manage"

# Legal hold permissions
PERM_LEGALHOLD_VIEW = "dms.legalhold.view"
PERM_LEGALHOLD_PLACE = "dms.legalhold.place"
PERM_LEGALHOLD_RELEASE = "dms.legalhold.release"

# Archive record permissions
PERM_ARCHIVE_VIEW = "dms.archive.view"
PERM_ARCHIVE_CREATE = "dms.archive.create"


def register_all() -> None:
    register_permission(
        codename=PERM_RETENTION_VIEW,
        label="DMS: View retention policies",
        description="Allows viewing tenant retention policy definitions.",
    )
    register_permission(
        codename=PERM_RETENTION_MANAGE,
        label="DMS: Manage retention policies",
        description="Allows creating, updating, and deleting retention policies.",
    )
    register_permission(
        codename=PERM_LEGALHOLD_VIEW,
        label="DMS: View legal holds",
        description="Allows viewing legal holds placed on documents.",
    )
    register_permission(
        codename=PERM_LEGALHOLD_PLACE,
        label="DMS: Place legal hold",
        description="Allows placing a compliance legal hold on a document.",
    )
    register_permission(
        codename=PERM_LEGALHOLD_RELEASE,
        label="DMS: Release legal hold",
        description="Allows releasing an active legal hold from a document.",
    )
    register_permission(
        codename=PERM_ARCHIVE_VIEW,
        label="DMS: View archive records",
        description="Allows viewing document archive records.",
    )
    register_permission(
        codename=PERM_ARCHIVE_CREATE,
        label="DMS: Create archive record",
        description="Allows archiving a document and creating an archive record.",
    )
