from django.urls import path,include
from rest_framework import routers

from users.views.admin_user import admin_change_email_direct, admin_change_password_direct, admin_create, admin_update
from users.views.auth  import (
     AutoVerifyEmailView, RegisterView, LoginView, VerifyEmailView,
    PasswordResetRequestView, PasswordResetConfirmView,
    ResendVerificationView, 
    AdminLoginView,  # added admin login view
)
from users.views.user import (
    AdminCreateAdminView, AdminCreateClientView, AdminChangePasswordView, ChangePasswordView, 
    UserProfileView,LogoutView,UserDeleteView,UserDetailView,UserListView
)
from users.views.email import (
    SendEmailView
)
from users.views.sub_admin import CountryAdminView
from rest_framework.authtoken.views import obtain_auth_token
from users.views.country_admin_login import CountryAdminLoginView
from users.views.country_admin_registration import CountryAdminRegistrationView

urlpatterns = [
    path('register/', RegisterView.as_view(), name='register'),
    path('login/', LoginView.as_view(), name='login'),
    path('admin/login/', AdminLoginView.as_view(), name='admin-login'),  # admin-only token endpoint
    path('logout/', LogoutView.as_view(), name='logout'),
    path('verify-email/', VerifyEmailView.as_view(), name='verify-email'),
    path('verify/', AutoVerifyEmailView.as_view(), name='auto-verify-email'), 
    # path('resend-verification/', ResendVerificationView.as_view(), name='resend-verification'),
    path('password-reset-request/', PasswordResetRequestView.as_view(), name='password-reset-request'),
    path('password-reset-confirm/', PasswordResetConfirmView.as_view(), name='password-reset-confirm'),
    path('send-email/', SendEmailView.as_view(), name='send-email'),
    # path('profile/', UserProfileView.as_view(), name='user-profile'),
    # path('delete/<uuid:user_id>/', UserDeleteView.as_view(), name='user-delete'),
    # path('admin/create-admin/', AdminCreateAdminView.as_view(), name='register-admin'),
    # path('admin/create-client/', AdminCreateClientView.as_view(), name='admin-create-user'),
    path('profile/', UserProfileView.as_view(), name='user-profile'),
    path('detail/<int:user_id>/', UserDetailView.as_view(), name='user-detail'),
    path('admin/change-password/', AdminChangePasswordView.as_view(), name='change_password'),
    path('list/', UserListView.as_view(), name='user-list'),
    path('change-password/', ChangePasswordView.as_view(), name='change-password'),

    # Admin-only endpoints
    path('admin/change-password/', admin_change_password_direct, name='admin_change_password_direct'),
    path('admin/change-email/', admin_change_email_direct, name='admin_change_email_direct'),
    path('admin/create/', admin_create, name='admin_create'),
    path('admin/change-credential/', admin_update, name='change_admin_credential'),


    # country based admin
    path("countries/admin/", CountryAdminView.as_view()),
    path("countries/admin/login", CountryAdminLoginView.as_view()),
    path("country-admins/<int:id>/", CountryAdminView.as_view()),
    path("countries/admin/register/", CountryAdminRegistrationView.as_view()),
    
]