from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import UserViewSet, PartnerViewSet, PartnerAdminViewSet, ResendVerificationEmailView,UserRegistrationView, csrf_token_view,VerifyEmailView,GoogleLoginView
from django.urls import path, re_path
from dj_rest_auth.views import PasswordResetView, PasswordResetConfirmView

router = DefaultRouter()
router.register(r'users', UserViewSet)
router.register(r'partners', PartnerViewSet)
router.register(r'partner-admins', PartnerAdminViewSet)

urlpatterns = [
    path('', include(router.urls)),
    path('register/', UserRegistrationView.as_view(), name='user-registration'),
    path('me/', UserViewSet.as_view({'get': 'me'}), name='me'),
    # Make sure this URL pattern matches exactly what the frontend expects
    path('profile/', UserViewSet.as_view({
        'get': 'profile',
        'patch': 'update_profile'
    }), name='user-profile'),
    path('csrf/', csrf_token_view, name='csrf_token'),
    
    # Add password reset endpoints
    path('password-reset/', PasswordResetView.as_view(), name='password_reset'),
    path('password-reset-confirm/<uidb64>/<token>/', PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
    # Add email verification endpoints
    path('registration/verify-email/', VerifyEmailView.as_view(), name='verify_email'),
    path('registration/resend-email/', ResendVerificationEmailView.as_view(), name='resend_verification_email'),
    # Google login
    path('google/', GoogleLoginView.as_view(), name='google_login'),
]