# alumni/urls.py

from django.urls import path,reverse_lazy,re_path
from . import views
from . import utils as util_views
from authentication import views as auth_views
from django.contrib.auth import views as auth_views_


from django.views.static import serve
from django.conf import settings
from django.conf.urls.static import static

app_name = "alumni"

urlpatterns = [
    
    
    re_path(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
    
    
    # -------------------------
    # Download
    # -------------------------
    path('download/<int:pk>/', views.download_file, name='download_file'),
    
    # -------------------------
    # Jobs
    # -------------------------
    path("jobs/", views.job_list, name="job_list"),
    path("jobs/<int:pk>/", views.job_detail, name="job_detail"),
    
    # -------------------------
    # Statistics
    # -------------------------
    
    path('statistics/', views.alumni_donation_statistics, name='statistics'),
    
    
    # -------------------------
    # Donations
    # -------------------------
    path("admin/donations-report/", views.donation_audit_report, name="donation_audit_report"),
    
    path("donate/", views.donate, name="donate"),

    
    path("verify-payment/<str:reference>/", views.verify_donation, name="verify_payment"),
    path("donate/status/<str:reference>/", views.donation_status, name="donation_success"),

   
    # -------------------------
    # Password reset
    # -------------------------
   
    path('password-reset/', 
         auth_views_.PasswordResetView.as_view(
             template_name='alumni/password_reset.html',
             email_template_name='alumni/emails/password_reset_email.html',
             subject_template_name='alumni/emails/password_reset_subject.txt',
             success_url=reverse_lazy('alumni:password_reset_done'),
             html_email_template_name='alumni/emails/password_reset_email.html' 
         ), name='password_reset'),

    path('password-reset/done/', 
         auth_views_.PasswordResetDoneView.as_view(
             template_name='alumni/password_reset_done.html'
         ), name='password_reset_done'),

    path('reset/<uidb64>/<token>/', 
         auth_views_.PasswordResetConfirmView.as_view(
             template_name='alumni/password_reset_confirm.html',
             success_url=reverse_lazy('alumni:password_reset_complete')
         ), name='password_reset_confirm'),

    path('reset/done/', 
         auth_views_.PasswordResetCompleteView.as_view(
             template_name='alumni/password_reset_complete.html'
         ), name='password_reset_complete'),

    
    # -------------------------
    # Authentication
    # -------------------------
    path('', auth_views.login_view, name='login'),
    path('go-to-doc-system/', auth_views.redirect_to_doc_system, name='go_to_doc_system'),
    path('logout/', auth_views.logout_view, name='logout'),
    path('register/', views.alumni_register, name='register'),

    # -------------------------
    # Dashboard
    # -------------------------
    path('dashboard/', views.dashboard, name='dashboard'),
    path('admin-dashboard/', views.admin_dashboard, name='admin_dashboard'),


    # -------------------------
    # Alumni Profile
    # -------------------------
    path('profile/', views.profile_view, name='profile'),
    path('profile/update/', views.update_profile, name='update_profile'),

    # -------------------------
    # Alumni Directory
    # -------------------------
    # path('directory/', views.alumni_directory, name='alumni_directory'),
    # path('directory/<int:pk>/', views.alumni_detail, name='alumni_detail'),

    # -------------------------
    # Events
    # -------------------------
    path('events/', views.event_list, name='event_list'),
    path('events/<int:event_id>/detail/', views.event_detail, name='event_detail'),
    path('events/<int:event_id>/register/', views.register_event, name='register_event'),
    path('events/create/', views.create_event, name='create_event'),
    path('mark-attendance/<int:participation_id>/',views.mark_attendance,name='mark_attendance'),


    # -------------------------
    # Jobs
    # -------------------------
    # path('jobs/', views.job_list, name='job_list'),
    # path('jobs/<int:pk>/', views.job_detail, name='job_detail'),
    path('employment/create/', views.add_employment, name='create_job'),

    # -------------------------
    # Donations
    # -------------------------
    # path('donations/', views.donation_list, name='donation_list'),
    path('donations/make/', views.make_donation, name='make_donation'),

    # -------------------------
    # Admin / Secretariat
    # -------------------------
    path('admin-dashboard/', views.dashboard, name='admin_dashboard'),
    path("system-logs/", views.system_logs, name="system_logs"),

    # path('approve-alumni/<int:pk>/', views.approve_alumni, name='approve_alumni'),
]
