from django.urls import path
from apps.core import views
from rest_framework_simplejwt import views as jwt_views


urlpatterns = [
    path(
        'register/',
        views.RegistrationView.as_view(),
        name='register'
    ),
    path(
        'account-activation/<secret_key>',
        views.AccountActivationAPIView.as_view(),
        name='account-activation'
    ),
    path(
        'resend-activation/',
        views.ResendActivationAPIView.as_view(),
        name='resend-activation'
    ),
    path(
        'login/',
        views.CustomTokenObtainPairView.as_view(),
        name='token_obtain_pair'
    ),

    path(
        "2fa/setup/",
        views.TwoFactorSetupView.as_view(),
        name='setup-2fa'
    ),
    path(
        "2fa/enable/",
        views.TwoFactorEnableView.as_view(),
        name='enable-2fa'
    ),
    path(
        "2fa/disable/",
        views.TwoFactorDisableView.as_view(),
        name='disable-2fa'
    ),
    path(
        "2fa/login/verify/",
        views.TwoFactorLoginVerifyView.as_view(),
        name='verify-2fa'
    ),
    path(
        "2fa/recovery-codes/regenerate/",
        views.RecoveryCodeRegenerateView.as_view(),
        name="2fa-recovery-regenerate",
    ),

    # path(
    #     "2fa/email/request/",
    #     views.EmailOTPRequestView.as_view(),
    #     name="2fa-email-request",
    # ),
    # path(
    #     "2fa/email/verify/",
    #     views.EmailOTPVerifyView.as_view(),
    #     name="2fa-email-verify",
    # ),

    path(
        'me/',
        views.UserDetailView.as_view(),
        name='user'
    ),
    path(
        'me/memberships',
        views.UserMembershipsView.as_view(),
        name='user-memberships'
    ),
    path(
        'me/dealerships',
        views.UserDealershipsView.as_view(),
        name='user-dealerships'
    ),
    path(
        'forget-password/',
        views.ForgetPasswordView.as_view(),
        name='forget_password'
    ),
    path(
        'token-refresh/',
        jwt_views.TokenRefreshView.as_view(),
        name='token_refresh'
    ),
    path(
        'token/verify/',
        jwt_views.TokenVerifyView.as_view(),
        name='token_verify'
    ),
    path(
        'reset-password/<secret_key>',
        views.ResetPasswordAPIView.as_view(),
        name='reset-password'
    ),
    path(
        'email-exist/',
        views.EmailExistAPIView.as_view(),
        name='email-exist'
    ),
    path(
        'account-status/',
        views.AccountStatusAPIView.as_view(),
        name='account-status'
    ),
    path(
        'change-password/',
        views.ChangePasswordView.as_view(),
        name='change-password'
    ),
    path(
        'change-old-password/',
        views.ChangeOldPasswordView.as_view(),
        name='change-old-password'
    ),
    path(
        'company-users/',
        views.CompanyUsersView.as_view(),
        name='company-users'
    ),
    path(
        'user-companies/',
        views.SingleUserCompaniesView.as_view(),
        name='user-companies'
    ),
    path(
        'resend-password/',
        views.ResendPasswordView.as_view(),
        name='resend-password'
    ),
    path(
        'user-status/',
        views.UserStatusView.as_view(),
        name='user-status'
    ),
    path(
        'all-companies-users/',
        views.AllCompaniesUsersView.as_view(),
        name='all-companies-users'
    ),
    path(
        'users-list/',
        views.UserListView.as_view(),
        name='users-list'
    ),
    path(
        'super-admin-update-user/<int:user_id>/',
        views.SuperAdminUserUpdateView.as_view(),
        name='super-admin-update-user'
    ),
    path(
        'update-user/<int:user_id>/',
        views.UserUpdateView.as_view(),
        name='update-user'
    ),

    path(
        "delete/<int:user_id>/",
        views.DeleteUserView.as_view(),
        name="delete-user"
    ),

]
