from django.urls import path
from . import views

urlpatterns = [
    path('register/', views.register, name='register'),
    path('login/', views.login_view, name='login'),
    path('logout/', views.logout_view, name='logout'),
    path('profile/', views.profile, name='profile'),
    path('profile/<int:user_id>/', views.user_profile, name='user_profile'),
    path('handle/<str:username>/', views.user_profile_by_username, name='user_profile_by_username'),
    path('delete/', views.delete_account, name='delete_account'),
    path('follow/<int:user_id>/', views.follow_user, name='follow_user'),
    path('unfollow/<int:user_id>/', views.unfollow_user, name='unfollow_user'),
    path('remove-follower/<int:user_id>/', views.remove_follower, name='remove_follower'),
    path('suggested-users/', views.suggested_users, name='suggested_users'),
    path('check-availability/', views.check_availability, name='check_availability'),
    path('change-password/', views.change_password, name='change_password'),
    path('update-account/', views.update_account, name='update_account'),
    # Blocking endpoints
    path('block/<int:user_id>/', views.block_user, name='block_user'),
    path('unblock/<int:user_id>/', views.unblock_user, name='unblock_user'),
    path('blocked/', views.blocked_list, name='blocked_list'),
    path('google/', views.google_login, name='google_login'),
    # Pasword Reset
    path('password-reset/', views.request_password_reset, name='request_password_reset'),
    path('password-reset/confirm/', views.reset_password_confirm, name='reset_password_confirm'),
    # Email Verification
    path('verify-email/', views.verify_email, name='verify_email'),
    path('resend-verification/', views.resend_verification_email_view, name='resend_verification'),
    # Email Change
    path('request-email-change/', views.request_email_change, name='request_email_change'),
    path('confirm-email-change/', views.confirm_email_change, name='confirm_email_change'),
    # Close Friends endpoints
    path('close-friends/', views.close_friends_list, name='close_friends_list'),
    path('close-friends/<int:user_id>/add/', views.add_close_friend, name='add_close_friend'),
    path('close-friends/<int:user_id>/remove/', views.remove_close_friend, name='remove_close_friend'),
    # Restricted Users endpoints
    path('restricted/', views.restricted_users_list, name='restricted_users_list'),
    path('restricted/<int:user_id>/add/', views.add_restricted_user, name='add_restricted_user'),
    path('restricted/<int:user_id>/remove/', views.remove_restricted_user, name='remove_restricted_user'),
    # Profile Links endpoints
    path('profile/links/', views.profile_links_list, name='profile_links_list'),
    path('profile/links/create/', views.profile_link_create, name='profile_link_create'),
    path('profile/links/<int:link_id>/update/', views.profile_link_update, name='profile_link_update'),
    path('profile/links/<int:link_id>/delete/', views.profile_link_delete, name='profile_link_delete'),
    path('profile/links/bulk-update/', views.profile_links_bulk_update, name='profile_links_bulk_update'),
]
