from __future__ import annotations

from django.urls import path

from simorgh.apps.modules.views import (
    FeatureFlagListView,
    FeatureFlagSetView,
    FeatureGrantView,
    FeatureListView,
    FeaturePurchaseView,
    FeatureRevokeView,
    FeatureToggleView,
    ModuleDetailView,
    ModuleDisableView,
    ModuleEnableView,
    ModuleInstallView,
    ModuleListView,
    ModuleRollbackView,
    ModuleUpgradeView,
)

app_name = "platform_modules"

urlpatterns = [
    path("", ModuleListView.as_view(), name="module-list"),
    path("<str:name>/", ModuleDetailView.as_view(), name="module-detail"),
    path("<str:name>/install/", ModuleInstallView.as_view(), name="module-install"),
    path("<str:name>/enable/", ModuleEnableView.as_view(), name="module-enable"),
    path("<str:name>/disable/", ModuleDisableView.as_view(), name="module-disable"),
    path("<str:name>/upgrade/", ModuleUpgradeView.as_view(), name="module-upgrade"),
    path("<str:name>/rollback/", ModuleRollbackView.as_view(), name="module-rollback"),
    path("<str:name>/flags/", FeatureFlagListView.as_view(), name="flag-list"),
    path("<str:name>/flags/<str:flag>/", FeatureFlagSetView.as_view(), name="flag-set"),
    path("<str:name>/features/", FeatureListView.as_view(), name="feature-list"),
    path(
        "<str:name>/features/<str:code>/grant/",
        FeatureGrantView.as_view(),
        name="feature-grant",
    ),
    path(
        "<str:name>/features/<str:code>/revoke/",
        FeatureRevokeView.as_view(),
        name="feature-revoke",
    ),
    path(
        "<str:name>/features/<str:code>/purchase/",
        FeaturePurchaseView.as_view(),
        name="feature-purchase",
    ),
    path(
        "<str:name>/features/<str:code>/toggle/",
        FeatureToggleView.as_view(),
        name="feature-toggle",
    ),
]
