# -*- coding: utf-8 -*-
"""
Activities URL Configuration

This module defines URL patterns for the activities app.
It includes routes for both web views and API endpoints
for activity logging, audit trails, and security events.

URL Patterns:
    - Web Views: Activity lists, details, and user activities
    - API Views: RESTful endpoints for activities, stats, and exports
    - Admin Views: Enhanced admin interface integration

Author: AdTlas Development Team
Version: 1.0.0
Last Updated: 2024
"""

from django.urls import path, include
from django.views.generic import TemplateView

from . import views

# App namespace
app_name = 'activities'

# Web view URL patterns
web_urlpatterns = [
    # Activity list and detail views
    path(
        '',
        views.ActivityListView.as_view(),
        name='activity_list'
    ),
    path(
        '<int:pk>/',
        views.ActivityDetailView.as_view(),
        name='activity_detail'
    ),
    
    # User-specific activity views
    path(
        'my-activities/',
        views.UserActivityListView.as_view(),
        name='user_activity_list'
    ),
    
    # Audit log views (admin only)
    path(
        'audit-logs/',
        views.AuditLogListView.as_view(),
        name='audit_log_list'
    ),
    
    # Security event views (admin only)
    path(
        'security-events/',
        views.SecurityEventListView.as_view(),
        name='security_event_list'
    ),
    
    # Dashboard view
    path(
        'dashboard/',
        TemplateView.as_view(template_name='activities/dashboard.html'),
        name='dashboard'
    ),
]

# API URL patterns
api_urlpatterns = [
    # Activity API endpoints
    path(
        'activities/',
        views.ActivityAPIView.as_view(),
        name='activity_api_list'
    ),
    path(
        'activities/my/',
        views.UserActivityAPIView.as_view(),
        name='user_activity_api_list'
    ),
    path(
        'activities/stats/',
        views.ActivityStatsAPIView.as_view(),
        name='activity_stats_api'
    ),
    path(
        'activities/log/',
        views.log_activity_api,
        name='log_activity_api'
    ),
    path(
        'activities/export/',
        views.activity_export_api,
        name='activity_export_api'
    ),
]

# Main URL patterns
urlpatterns = [
    # Include web view patterns
    path('', include(web_urlpatterns)),
    
    # Include API patterns with 'api/' prefix
    path('api/', include(api_urlpatterns)),
]