from django.urls import path
from . import views

urlpatterns = [
    # Public Portal — Root URL shows informativo landing
    path('', views.public_home, name='public_home'),
    path('login/', views.user_login, name='login'),
    path('logout/', views.user_logout, name='logout'),

    # Public — Parent Portal Authentication
    path('history/', views.parent_login, name='parent_login'),


    # Device Receiver (ADMS)
    path('iclock/', views.iclock_receiver, name='iclock_receiver'),
    path('iclock/getrequest', views.iclock_receiver, name='iclock_getrequest'),
    path('iclock/cdata', views.iclock_receiver, name='iclock_cdata'),
    path('iclock/devicecmd', views.iclock_receiver, name='iclock_devicecmd'),
    
    # Superuser Dashboards & Schools
    path('super/dashboard/', views.super_dashboard, name='super_dashboard'),
    path('super/backup/', views.super_backup, name='super_backup'),
    path('super/monitoring/', views.super_monitoring, name='super_monitoring'),
    path('super/sms-config/', views.super_sms_settings, name='super_sms_settings'),
    path('super/monitoring/unbind/<int:pk>/', views.super_device_unbind, name='super_device_unbind'),
    path('super/monitoring/edit/<int:pk>/', views.super_device_edit, name='super_device_edit'),
    path('super/monitoring/terminate/<int:pk>/', views.super_device_terminate, name='super_device_terminate'),
    path('super/monitoring/delete/<int:pk>/', views.super_device_delete, name='super_device_delete'),
    path('super/schools/', views.super_school_list, name='super_school_list'),
    path('super/announcements/', views.super_announcement_list, name='super_announcement_list'),
    path('super/announcements/add/', views.super_announcement_add, name='super_announcement_add'),
    path('super/announcements/delete/<int:pk>/', views.super_announcement_delete, name='super_announcement_delete'),
    path('super/schools/add/', views.super_school_add, name='super_school_add'),
    path('super/schools/edit/<int:pk>/', views.super_school_edit, name='super_school_edit'),
    path('super/schools/settings/<int:pk>/', views.super_institution_settings, name='super_institution_settings'),
    path('super/schools/api/toggle-sms/<int:pk>/', views.api_toggle_school_sms, name='api_toggle_school_sms'),
    path('super/schools/api/toggle-time-test/<int:pk>/', views.api_toggle_school_time_test, name='api_toggle_school_time_test'),
    path('super/schools/api/toggle-hold/<int:pk>/', views.api_toggle_school_hold, name='api_toggle_school_hold'),
    path('super/schools/api/toggle-individual-sms/<int:pk>/', views.api_toggle_school_individual_sms, name='api_toggle_school_individual_sms'),
    path('super/schools/api/toggle-lunch-break/<int:pk>/', views.api_toggle_lunch_break_required, name='api_toggle_lunch_break_required'),
    path('super/schools/api/set-subscription/<int:pk>/', views.api_set_subscription_limit, name='api_set_subscription_limit'),
    path('super/schools/export/<int:pk>/', views.super_school_export, name='super_school_export'),
    path('super/schools/import/', views.super_school_import, name='super_school_import'),
    path('super/schools/api/send-credentials/<int:pk>/', views.api_send_school_credentials, name='api_send_school_credentials'),
    path('school/api/update-password/', views.api_update_school_password, name='api_update_school_password'),
    path('school/api/sync-location/', views.api_sync_location, name='api_sync_location'),
    path('super/sms/gateways/', views.super_sms_gateway_list, name='super_sms_gateway_list'),
    path('super/sms/gateways/add/', views.super_sms_gateway_add, name='super_sms_gateway_add'),
    path('super/sms/gateways/toggle/<int:pk>/', views.api_toggle_sms_gateway, name='api_toggle_sms_gateway'),
    path('super/sms/gateways/delete/<int:pk>/', views.super_sms_gateway_delete, name='super_sms_gateway_delete'),
    path('super/schools/delete/<int:pk>/', views.super_school_delete, name='super_school_delete'),
    path('super/schools/assign-device/<int:pk>/', views.super_device_assign, name='super_device_assign'),
    path('super/devices/remove/<int:pk>/', views.super_device_remove, name='super_device_remove'),

    # School Dashboard
    path('school/dashboard/', views.school_dashboard, name='school_dashboard'),
    path('teacher/dashboard/', views.teacher_dashboard, name='teacher_dashboard'),
    path('teacher/attendance/', views.teacher_attendance, name='teacher_attendance'),
    path('teacher/attendance/edit/', views.teacher_edit_attendance, name='teacher_edit_attendance'),
    path('school/devices/', views.school_device_list, name='school_device_list'),
    path('school/attendance/', views.attendance_log, name='attendance_log'),
    # Student Management
    path('school/students/', views.student_list, name='student_list'),
    path('school/students/add/', views.student_add, name='student_add'),
    path('school/students/edit/<int:pk>/', views.student_edit, name='student_edit'),
    
    # Teacher Management
    path('school/teachers/', views.teacher_list, name='teacher_list'),
    path('school/teachers/add/', views.teacher_add, name='teacher_add'),
    path('school/teachers/edit/<int:pk>/', views.teacher_edit, name='teacher_edit'),
    path('school/teachers/terminate/<int:pk>/', views.teacher_terminate, name='teacher_terminate'),
    path('school/teachers/delete/<int:pk>/', views.teacher_delete, name='teacher_delete'),
    path('school/students/delete/<int:pk>/', views.student_delete, name='student_delete'),
    path('school/students/regen-secret/<int:pk>/', views.regenerate_secret_code, name='student_regen_secret'),
    path('school/students/session-record/<int:pk>/', views.student_session_record, name='student_session_record'),
    path('school/students/api/get-fees/', views.api_get_class_fees, name='api_get_class_fees'),
    path('school/students/api/check-duplicate/', views.api_check_duplicate_student, name='api_check_duplicate_student'),
    path('school/students/api/attendance/<int:pk>/', views.attendance_api, name='attendance_api'),
    path('school/students/api/get-subjects/', views.api_get_class_subjects, name='api_get_class_subjects'),
    path('school/students/api/enroll-finger/', views.api_enroll_finger, name='api_enroll_finger'),
    path('school/students/api/command-status/<int:cmd_id>/', views.api_command_status, name='api_command_status'),
    path('school/students/reset-attendance/<int:pk>/', views.reset_student_attendance, name='reset_student_attendance'),
    path('school/students/api/attendance/update/<int:pk>/', views.attendance_manual_update, name='attendance_manual_update'),
    path('school/leaves/', views.leave_management, name='leave_management'),
    path('school/leaves/delete/<int:pk>/', views.leave_delete, name='leave_delete'),
    path('school/students/api/check-roll/', views.api_check_roll_availability, name='api_check_roll_availability'),
    path('school/level-up/', views.school_level_up, name='school_level_up'),
    path('school/time-test/', views.school_time_test, name='school_time_test'),
    path('school/time-test/toggle/', views.school_toggle_test_mode, name='school_toggle_test_mode'),
    path('school/time-test/api/update/', views.school_update_test_time, name='school_update_test_time'),
    path('school/announcement/', views.school_announcement, name='school_announcement'),
    
    # Superadmin SMS Dashboard
    path('super/sms/', views.super_sms_dashboard, name='super_sms_dashboard'),
    path('super/sms/school/<int:school_id>/', views.super_school_sms_details, name='super_school_sms_details'),
    
    # Holiday Management
    path('school/holidays/', views.holiday_list, name='holiday_list'),
    path('school/holidays/add/', views.holiday_add, name='holiday_add'),
    path('school/holidays/delete/<int:pk>/', views.holiday_delete, name='holiday_delete'),
    
    # NEW: Admin Tools
    path('school/fees/receipt/<int:txn_id>/', views.fee_receipt, name='fee_receipt'),
    path('school/admit-pass/', views.admit_pass_management, name='admit_pass_management'),
    path('school/admit-pass/print/<int:ap_id>/', views.admit_pass_print, name='admit_pass_print'),
    
    # Class Management
    path('school/classes/', views.class_list, name='class_list'),
    path('school/classes/add/', views.class_add, name='class_add'),
    path('school/classes/edit/<int:pk>/', views.class_edit, name='class_edit'),
    path('school/classes/delete/<int:pk>/', views.class_delete, name='class_delete'),
    
    # Attendance Schedules
    path('school/schedules/', views.schedule_list, name='schedule_list'),
    path('school/schedules/update/<int:class_id>/', views.schedule_update, name='schedule_update'),
    
    # Fee Management
    path('school/fees/types/', views.fee_type_list, name='fee_type_list'),
    path('school/fees/types/add/', views.fee_type_add, name='fee_type_add'),
    path('school/fees/types/edit/<int:pk>/', views.fee_type_edit, name='fee_type_edit'),
    path('school/fees/types/delete/<int:pk>/', views.fee_type_delete, name='fee_type_delete'),

    # Fine Logic Management
    path('school/fees/fines/', views.fine_logic_list, name='fine_logic_list'),
    path('school/fees/fines/add/', views.fine_logic_add, name='fine_logic_add'),
    path('school/fees/fines/edit/<int:pk>/', views.fine_logic_edit, name='fine_logic_edit'),
    path('school/fees/fines/delete/<int:pk>/', views.fine_logic_delete, name='fine_logic_delete'),
    
    # Fee Collection
    path('school/fees/collection/', views.fee_collection, name='fee_collection'),
    path('school/fees/collect/<int:pk>/', views.collect_fee, name='collect_fee'),
    path('school/fees/types/apply/<int:pk>/', views.api_apply_fee, name='api_apply_fee'),
    
    path('school/attendance/approve/<int:pk>/', views.approve_hold_punch, name='approve_hold_punch'),
    path('school/attendance/report/', views.attendance_report, name='attendance_report'),
    path('school/attendance/report/pdf/', views.attendance_report_pdf, name='attendance_report_pdf'),
    path('school/api/ack-announcement/<int:pk>/', views.api_ack_announcement, name='api_ack_announcement'),

    # Result Management
    path('school/exams/', views.exam_list, name='exam_list'),
    path('school/exams/add/', views.exam_add, name='exam_add'),
    path('school/subjects/', views.subject_list, name='subject_list'),
    path('school/subjects/add/', views.subject_add, name='subject_add'),
    path('school/subjects/edit/<int:pk>/', views.subject_edit, name='subject_edit'),
    path('school/subjects/delete/<int:pk>/', views.subject_delete, name='subject_delete'),
    path('school/subjects/groups/add/', views.subject_group_add, name='subject_group_add'),
    path('school/marks/entry/', views.mark_entry, name='mark_entry'),
    path('school/marks/api/send-sms/', views.api_send_result_sms, name='api_send_result_sms'),
    path('school/marks/api/exam-bulk-sms/', views.api_exam_bulk_sms, name='api_exam_bulk_sms'),
    path('school/marks/api/check-exam-sms/', views.api_check_exam_sms_status, name='api_check_exam_sms_status'),
    path('school/exams/print-result/', views.exam_result_print, name='exam_result_print'),
    path('school/grades/', views.grade_config_list, name='grade_config_list'),
    path('school/grades/add/', views.grade_config_add, name='grade_config_add'),
    path('school/virtual-classes/', views.virtual_class_list, name='virtual_class_list'),
    path('school/virtual-classes/add/', views.virtual_class_add, name='virtual_class_add'),
    path('school/virtual-classes/delete/<int:pk>/', views.virtual_class_delete, name='virtual_class_delete'),
    path('school/virtual-classes/api/get-students/', views.api_get_students_for_subjects, name='api_get_students_for_subjects'),

    # Parent Portal
    path('parent/dashboard/', views.parent_dashboard, name='parent_dashboard'),
    path('parent/attendance/', views.parent_attendance, name='parent_attendance'),
    path('parent/results/', views.parent_results, name='parent_results'),
    path('parent/fees/', views.parent_fees, name='parent_fees'),
    path('parent/logout/', views.parent_logout, name='parent_logout'),
]
