from __future__ import annotations

from django.urls import path

from . import views

urlpatterns = [
    # Registry (public metadata)
    path("view-types/", views.view_types_list, name="vis-view-types"),
    path("chart-types/", views.chart_types_list, name="vis-chart-types"),
    path("widget-types/", views.widget_types_list, name="vis-widget-types"),

    # View configurations
    path("views/", views.view_configurations_list, name="vis-views-list"),
    path("views/create/", views.view_configurations_create, name="vis-views-create"),
    path("views/<int:view_id>/", views.view_configurations_detail, name="vis-views-detail"),
    path("views/<int:view_id>/update/", views.view_configurations_update, name="vis-views-update"),
    path("views/<int:view_id>/delete/", views.view_configurations_delete, name="vis-views-delete"),
    path("views/<int:view_id>/set-default/", views.view_configurations_set_default, name="vis-views-set-default"),

    # View filters
    path("views/<int:view_id>/filters/", views.view_filters_create, name="vis-view-filters-create"),
    path("filters/<int:filter_id>/delete/", views.view_filters_delete, name="vis-view-filters-delete"),

    # View groupings
    path("views/<int:view_id>/groupings/", views.view_groupings_update, name="vis-view-groupings-update"),

    # Dashboards
    path("dashboards/", views.dashboards_list, name="vis-dashboards-list"),
    path("dashboards/create/", views.dashboards_create, name="vis-dashboards-create"),
    path("dashboards/<int:dashboard_id>/", views.dashboards_detail, name="vis-dashboards-detail"),
    path("dashboards/<int:dashboard_id>/update/", views.dashboards_update, name="vis-dashboards-update"),
    path("dashboards/<int:dashboard_id>/delete/", views.dashboards_delete, name="vis-dashboards-delete"),

    # Dashboard widgets
    path("dashboards/<int:dashboard_id>/widgets/", views.dashboard_widgets_create, name="vis-dashboard-widgets-create"),

    # Chart configurations
    path("charts/", views.chart_configurations_list, name="vis-charts-list"),
    path("charts/create/", views.chart_configurations_create, name="vis-charts-create"),
    path("charts/<int:chart_id>/", views.chart_configurations_detail, name="vis-charts-detail"),
    path("charts/<int:chart_id>/update/", views.chart_configurations_update, name="vis-charts-update"),
    path("charts/<int:chart_id>/delete/", views.chart_configurations_delete, name="vis-charts-delete"),
]
