from django.urls import path, include
from rest_framework.routers import DefaultRouter
from account.views import RegisterAPI, LoginAPI, LoginBranchOptionsAPI, AdminUserManagementViewSet, UserProfileViewSet, VerifyEmailOTPAPI,ResendEmailOTPAPI
from account.view.logs import UserAuditLogViewSet
from account.view.email_verification import EmailVerificationView
from account.view.reset_password import ResetPasswordView
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView

router = DefaultRouter()
router.register(r'admin/users', AdminUserManagementViewSet, basename='admin-users')
router.register(r'profile', UserProfileViewSet, basename='profile')
router.register(r'audit-logs', UserAuditLogViewSet, basename='auditlog')


urlpatterns = [
    path('register/', RegisterAPI.as_view(), name='register'),  # Register endpoint
    path('login/', LoginAPI.as_view(), name='login'),           # Login endpoint
    path('login-branches/', LoginBranchOptionsAPI.as_view(), name='login-branches'),
    path('jwt/login/', TokenObtainPairView.as_view(), name='jwt-login'),
    path('jwt/refresh/', TokenRefreshView.as_view(), name='jwt-refresh'),
    path('', include(router.urls)),  # Include the router's URLs
    path("resend-email-otp/", ResendEmailOTPAPI.as_view()),
    # path("verify-email-otp/", ResendEmailOTPAPI.as_view()),
    path("verify-email-otp/", VerifyEmailOTPAPI.as_view()),
    path("reset-password-verify-email/", EmailVerificationView.as_view()),
    path("reset-password-confirm/", ResetPasswordView.as_view(), name="reset_password"),
]
