"""
Worktable Service - URL Configuration.

URL patterns for the worktable API.

Endpoints:
- /tables/ - List/create tables
- /tables/{slug}/ - Table detail/update/delete
- /tables/{slug}/columns/ - List/create columns
- /tables/{slug}/columns/{id}/ - Column detail/update/delete
- /tables/{slug}/records/ - List/create records
- /tables/{slug}/records/{id}/ - Record detail/update/delete
- /tables/{slug}/records/bulk_create/ - Bulk create records
- /tables/{slug}/records/bulk_update/ - Bulk update records
- /tables/{slug}/records/bulk_delete/ - Bulk delete records
- /tables/{slug}/records/export/ - Export records
- /tables/{slug}/records/import_data/ - Import records
- /tables/{slug}/filters/ - List/create saved filters
- /tables/{slug}/views/ - List/create custom views
- /tables/{slug}/logs/ - Table audit logs
- /tables/{slug}/records/{id}/logs/ - Record audit logs
"""
from django.urls import path, include
from rest_framework.routers import DefaultRouter

from .views import (
    TableDefinitionViewSet,
    TableColumnViewSet,
    TableRecordViewSet,
    SavedFilterViewSet,
    CustomViewViewSet,
    RecordAuditLogViewSet,
)


# Main router for tables
router = DefaultRouter()
router.register(r'tables', TableDefinitionViewSet, basename='table')

# Nested routers for columns, records, etc.
column_router = DefaultRouter()
column_router.register(r'columns', TableColumnViewSet, basename='table-columns')

record_router = DefaultRouter()
record_router.register(r'records', TableRecordViewSet, basename='table-records')

filter_router = DefaultRouter()
filter_router.register(r'filters', SavedFilterViewSet, basename='table-filters')

view_router = DefaultRouter()
view_router.register(r'views', CustomViewViewSet, basename='table-views')

log_router = DefaultRouter()
log_router.register(r'logs', RecordAuditLogViewSet, basename='table-logs')

app_name = 'worktable'

urlpatterns = [
    # Main tables endpoint
    path('', include(router.urls)),
    
    # Nested under tables/<slug>/
    path('tables/<slug:table_slug>/', include(column_router.urls)),
    path('tables/<slug:table_slug>/', include(record_router.urls)),
    path('tables/<slug:table_slug>/', include(filter_router.urls)),
    path('tables/<slug:table_slug>/', include(view_router.urls)),
    path('tables/<slug:table_slug>/', include(log_router.urls)),
    
    # Record-specific logs
    path(
        'tables/<slug:table_slug>/records/<uuid:record_pk>/logs/',
        RecordAuditLogViewSet.as_view({'get': 'list'}),
        name='record-logs-list'
    ),

    # Task Inbox & Archive (CQRS read models)
    path('', include('apps.services.worktable.cqrs.urls')),
]
