"""DMS permissions — URL patterns.

ACL Policies  (tenant-wide):
  /dms/acl/policies/
  /dms/acl/policies/{policy_id}/
  /dms/acl/policies/{policy_id}/rules/
  /dms/acl/policies/{policy_id}/rules/{rule_id}/

Document Permissions  (nested under document):
  /dms/documents/{doc_id}/acl/
  /dms/documents/{doc_id}/acl/resolve/          ← must come before <perm_id>/
  /dms/documents/{doc_id}/acl/{perm_id}/

Share Links  (nested under document):
  /dms/documents/{doc_id}/share-links/
  /dms/documents/{doc_id}/share-links/{link_id}/
  /dms/documents/{doc_id}/share-links/{link_id}/revoke/

Public (no auth):
  /dms/share/{token}/use/
"""

from django.urls import path

from simorgh.apps.dms.permissions import views

app_name = "dms_permissions"

urlpatterns = [
    # ------------------------------------------------------------------
    # ACL Policies
    # ------------------------------------------------------------------
    path(
        "acl/policies/",
        views.policy_list,
        name="policy-list",
    ),
    path(
        "acl/policies/<str:policy_id>/",
        views.policy_detail,
        name="policy-detail",
    ),
    # ------------------------------------------------------------------
    # ACL Rules (nested under policy)
    # ------------------------------------------------------------------
    path(
        "acl/policies/<str:policy_id>/rules/",
        views.rule_list,
        name="rule-list",
    ),
    path(
        "acl/policies/<str:policy_id>/rules/<str:rule_id>/",
        views.rule_detail,
        name="rule-detail",
    ),
    # ------------------------------------------------------------------
    # Document Permissions (nested under document)
    # ------------------------------------------------------------------
    path(
        "documents/<str:doc_id>/acl/",
        views.doc_permission_list,
        name="doc-permission-list",
    ),
    path(
        "documents/<str:doc_id>/acl/resolve/",
        views.doc_permission_resolve,
        name="doc-permission-resolve",
    ),
    path(
        "documents/<str:doc_id>/acl/<str:perm_id>/",
        views.doc_permission_detail,
        name="doc-permission-detail",
    ),
    # ------------------------------------------------------------------
    # Share Links (nested under document)
    # ------------------------------------------------------------------
    path(
        "documents/<str:doc_id>/share-links/",
        views.share_link_list,
        name="share-link-list",
    ),
    path(
        "documents/<str:doc_id>/share-links/<str:link_id>/revoke/",
        views.share_link_revoke,
        name="share-link-revoke",
    ),
    path(
        "documents/<str:doc_id>/share-links/<str:link_id>/",
        views.share_link_detail,
        name="share-link-detail",
    ),
    # ------------------------------------------------------------------
    # Public share link use (no auth)
    # ------------------------------------------------------------------
    path(
        "share/<str:token>/use/",
        views.share_link_use,
        name="share-link-use",
    ),
]
