from django.urls import path
from django.views.generic import TemplateView, RedirectView
from . import views

urlpatterns = [
    # ==========================================
    # 1. METADATA & SEO 🔍
    # ==========================================
    path('sitemap.xml', views.sitemap_view, name='sitemap_xml'),
    path('robots.txt', views.robots_txt, name='robots_txt'),

    # ==========================================
    # 2. CORE PORTAL PAGES (Home, Jobs, News) 🏠
    # ==========================================
    path('', views.home, name='home'),
    path('jobs/find-overseas-jobs/', views.job_list, name='job_list'),
    path('jobs/jobs-by-location/', views.jobs_by_location, name='jobs_by_location'),
    
    # News Section
    path('news/', views.news_list, name='news_list'),
    path('news/<slug:category_slug>/<slug:slug>/', views.news_detail, name='news_detail'),

    # ==========================================
    # 3. STATIC & INFO PAGES 📄
    # ==========================================
    path('about/', TemplateView.as_view(template_name="pages/about.html"), name='about'),
    path('privacy/', TemplateView.as_view(template_name="pages/privacy.html"), name='privacy'),
    path('services/', TemplateView.as_view(template_name="pages/services.html"), name='services'),
    path('terms/', TemplateView.as_view(template_name="pages/terms.html"), name='terms'),
    path('contact/', views.contact_view, name='contact'),

    # ==========================================
    # 4. IDENTITY & REGISTRATION 👤
    # ==========================================
    path('candidate/register/', views.candidate_register, name='candidate_register'),
    path('recruiter/register/', views.recruiter_register, name='recruiter_register'),
    path('set-role/', views.set_user_role, name='set_user_role'),

    # ==========================================
    # 5. CANDIDATE TOOLS & V-COINS 💰
    # ==========================================
    path('profile/', views.profile_dashboard, name='profile_dashboard'),
    path('apply/<int:job_id>/', views.apply_job, name='apply_job'),
    path('withdraw/<int:job_id>/', views.withdraw_application, name='withdraw_application'),
    path('favorite/<int:job_id>/', views.toggle_favorite, name='toggle_favorite'),
    path('update-avatar/', views.update_avatar, name='update_avatar'),
    path('refer-and-earn/', views.referral_program, name='referral_program'),
    path('withdraw-money/', views.withdraw_money, name='withdraw_money'), # Updated name
    
    # V-Coin Economy logic
    path('vcoin/heartbeat/', views.heartbeat_timer, name='heartbeat_timer'),
    path('vcoin/report-fraud/', views.report_fraud, name='report_fraud'),
    path('vcoin/spin-wheel/', views.spin_lucky_wheel, name='spin_lucky_wheel'),
    path('vcoin/dashboard/', views.vcoin_dashboard, name='vcoin_dashboard'),
    path('clear-welcome-flag/', views.clear_welcome_flag, name='clear_welcome_flag'),
    
    # AI Tools
    path('ai-resume-builder/', views.ai_resume_builder, name='ai_resume_builder'),
    path('ai/process-resume/', views.process_ai_resume, name='process_ai_resume'),
    path('ai/deduct-resume-coins/', views.deduct_resume_coins, name='deduct_resume_coins'),
    
    # Public Verification (QR Scan)
    path('cv/verify/<uuid:uuid_id>/', views.public_cv_verify, name='public_cv_verify'),
    
    # AJAX Utils
    path('ajax/get-trades/', views.get_trade_positions, name='ajax_get_trades'),

    # ==========================================
    # 6. RECRUITER ENGINE 🏢
    # ==========================================
    path('recruiter/dashboard/', views.recruiter_dashboard, name='recruiter_dashboard'),
    path('post-job/', views.post_job, name='post_job'),
    path('job/edit/<int:job_id>/', views.edit_job, name='edit_job'),
    path('job/delete/<int:job_id>/', views.delete_job, name='delete_job'),
    path('recruiter/branding/update/', views.update_recruiter_branding, name='update_branding'),
    path('unlock-applicant/<int:application_id>/', views.unlock_applicant, name='unlock_applicant'),
    path('buy_credits/', views.buy_credits, name='buy_credits'),
    path('view-applicants/<int:job_id>/', views.view_applicants, name='view_applicants'),
    path('make-featured/<int:job_id>/', views.make_job_featured, name='make_job_featured'),
    path('recruiter-form/', views.employer_faq_form, name='employer_faq_form'),

    # ==========================================
    # 7. ADMIN DASHBOARD 🛡️
    # ==========================================
    path('admin-dashboard/', views.admin_dashboard, name='admin_dashboard'),
    path('admin-dashboard/details/', views.detailed_stats, name='detailed_stats'),

    # ==========================================
    # 8. DYNAMIC SLUGS & REDIRECTS (SABSE NICHE) 🚩
    # ==========================================
    
    # A. Naya Job Detail URL (Standard)
    path('jobs/<slug:slug>/', views.job_detail, name='job_detail'),

    # B. Country Jobs Page
    path('jobs/jobs-by-location/jobs-in-<path:country_name>/', views.country_jobs, name='country_jobs'),
    path('jobs/country/jobs-in-<path:country_name>/', RedirectView.as_view(pattern_name='country_jobs', permanent=True)),
    
    # 🛡️ C. 301 REDIRECT (SEO PROTECT): Purane links ko naye par bhej raha hai
    # Note: Ye pattern catch-all hai, isliye isey sabse aakhir mein hi rakhein.
    path('<slug:slug>/', RedirectView.as_view(pattern_name='job_detail', permanent=True)),
]