"""DMS versioning — IAM permission definitions."""

from __future__ import annotations

from simorgh.apps.iam.registry import register_permission

PERM_VERSIONING_CHECKOUT = "dms.versioning.checkout"
PERM_VERSIONING_CHECKIN = "dms.versioning.checkin"
PERM_VERSIONING_RELEASE = "dms.versioning.release"
PERM_VERSIONING_COMPARE = "dms.versioning.compare"


def register_all() -> None:
    register_permission(
        codename=PERM_VERSIONING_CHECKOUT,
        label="DMS: Check out documents",
        description="Allows locking a document for exclusive editing.",
    )
    register_permission(
        codename=PERM_VERSIONING_CHECKIN,
        label="DMS: Check in documents",
        description="Allows releasing a checkout lock with or without a new version.",
    )
    register_permission(
        codename=PERM_VERSIONING_RELEASE,
        label="DMS: Force-release document locks",
        description="Allows an administrator to forcefully remove a lock held by any user.",
    )
    register_permission(
        codename=PERM_VERSIONING_COMPARE,
        label="DMS: Compare document versions",
        description="Allows requesting and viewing version comparison (diff) results.",
    )
