from django.urls import path
from . import views
from django.contrib.auth import views as auth_views
from .forms import CustomPasswordResetForm

app_name = 'accounts'  # Add namespace

urlpatterns = [
    path('register/', views.register, name='register'),
    path('quick-register/', views.quick_register, name='quick_register'),
    path('profile/', views.profile_view, name='profile_view'),
    path('profile/edit/', views.profile_edit, name='profile_edit'),
    path('login/', views.enhanced_login, name='login'),
    path('logout/', views.CustomLogoutView.as_view(
        next_page='main:index'
    ), name='logout'),
    path('password/change/', auth_views.PasswordChangeView.as_view(
        template_name='accounts/password_change.html',
        success_url='/accounts/password/change/done/',
        extra_context={'title': '修改密码'}
    ), name='password_change'),
    path('password/change/done/', auth_views.PasswordChangeDoneView.as_view(
        template_name='accounts/password_change_done.html',
        extra_context={'title': '密码修改成功'}
    ), name='password_change_done'),
    # Password Reset URLs with custom form
    path('password/reset/', auth_views.PasswordResetView.as_view(
        template_name='accounts/password_reset.html',
        email_template_name='accounts/password_reset_email.html',
        subject_template_name='accounts/password_reset_subject.txt',
        success_url='/accounts/password/reset/done/',
        form_class=CustomPasswordResetForm,
        extra_context={'title': '重置密码'}
    ), name='password_reset'),
    path('password/reset/done/', auth_views.PasswordResetDoneView.as_view(
        template_name='accounts/password_reset_done.html',
        extra_context={'title': '重置密码邮件已发送'}
    ), name='password_reset_done'),
    path('password/reset/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(
        template_name='accounts/password_reset_confirm.html',
        success_url='/accounts/password/reset/complete/',
        extra_context={'title': '设置新密码'}
    ), name='password_reset_confirm'),
    path('password/reset/complete/', auth_views.PasswordResetCompleteView.as_view(
        template_name='accounts/password_reset_complete.html',
        extra_context={'title': '密码重置成功'}
    ), name='password_reset_complete'),
    # Account deletion
    path('delete-account/', views.request_account_deletion, name='request_deletion'),
    path('delete-account/email-sent/<str:email>/', views.deletion_email_sent, name='deletion_email_sent'),
    path('delete-account/confirm/<uuid:token>/', views.confirm_account_deletion, name='confirm_deletion'),
    # path('delete-account/', views.public_request_account_deletion, name='public_delete_account'),
    # path('delete-account/request-sent/', views.public_deletion_request_sent, name='public_deletion_request_sent'),
    
    # Temporary user URLs
    path('temp-register/', views.temp_user_register, name='temp_register'),
] 