"""
CODH Users URL Configuration
"""

from django.urls import path
from . import views

urlpatterns = [
    # Authentication
    path('register/', views.RegisterView.as_view(), name='register'),
    path('login/', views.LoginView.as_view(), name='login'),
    path('logout/', views.LogoutView.as_view(), name='logout'),
    
    # Profile
    path('profile/', views.UserProfileView.as_view(), name='profile'),
    path('password/change/', views.PasswordChangeView.as_view(), name='password-change'),
    path('password/reset/', views.PasswordResetRequestView.as_view(), name='password-reset'),
    path('password/reset/confirm/', views.PasswordResetConfirmView.as_view(), name='password-reset-confirm'),
    
    # Sessions & Activity
    path('sessions/', views.UserSessionListView.as_view(), name='sessions'),
    path('sessions/<uuid:session_id>/revoke/', views.UserSessionRevokeView.as_view(), name='revoke-session'),
    path('activity/', views.UserActivityListView.as_view(), name='activity'),
    
    # Preferences
    path('preferences/', views.UserPreferenceView.as_view(), name='preferences'),
    
    # Stats
    path('stats/', views.get_user_stats, name='user-stats'),
    
    # User Management (Admin)
    path('', views.UserListView.as_view(), name='user-list'),
    path('create/', views.UserCreateView.as_view(), name='user-create'),
    path('<uuid:pk>/', views.UserDetailView.as_view(), name='user-detail'),
    
    # Roles & Permissions
    path('roles/', views.RoleListView.as_view(), name='role-list'),
    path('roles/<uuid:pk>/', views.RoleDetailView.as_view(), name='role-detail'),
    path('permissions/', views.PermissionListView.as_view(), name='permission-list'),
    
    # Teams
    path('teams/', views.TeamListView.as_view(), name='team-list'),
    path('teams/<uuid:pk>/', views.TeamDetailView.as_view(), name='team-detail'),
    path('teams/<uuid:team_id>/members/', views.AddTeamMemberView.as_view(), name='add-team-member'),
    path('teams/<uuid:team_id>/members/<uuid:member_id>/remove/', views.RemoveTeamMemberView.as_view(), name='remove-team-member'),
]
