from django.urls import path, re_path

from . import views

# RF
from .views import RegisterFormView, RegisterFormWithIdView, send, resend, archive, generate_registration_pdf
# SubClasses
from .views import StudentView, GuardianView, ChildrenListView, StudentListView, DissociateGuardianView
# Files
from .views import (
    RegistrationSchoolFileMasterView,
    RegistrationSchoolFileMasterSimpleView,
    RegistrationSchoolFileTemplateView,
    RegistrationSchoolFileTemplateSimpleView,
    RegistrationParentFileMasterSimpleView,
    RegistrationParentFileMasterView,
    RegistrationParentFileTemplateSimpleView,
    RegistrationParentFileTemplateView,
    AbsenceManagementListCreateView,
    AbsenceManagementDetailView,
    StudentCompetencyListCreateView,
    StudentCompetencySimpleView,
    search_students
)

from .views import RegistrationFileGroupView, RegistrationFileGroupSimpleView, get_registration_files_by_group
from .views import (
    get_school_file_templates_by_rf,
    get_parent_file_templates_by_rf
)

urlpatterns = [
    re_path(r'^registerForms/(?P<id>[0-9]+)/pdf$', generate_registration_pdf, name="generate_registration_pdf"),
    re_path(r'^registerForms/(?P<id>[0-9]+)/archive$', archive, name="archive"),
    re_path(r'^registerForms/(?P<id>[0-9]+)/resend$', resend, name="resend"),
    re_path(r'^registerForms/(?P<id>[0-9]+)/send$', send, name="send"),
    re_path(r'^registerForms/(?P<id>[0-9]+)$', RegisterFormWithIdView.as_view(), name="registerForm"),
    re_path(r'^registerForms/(?P<id>[0-9]+)/school_file_templates$', get_school_file_templates_by_rf, name="get_school_file_templates_by_rf"),
    re_path(r'^registerForms/(?P<id>[0-9]+)/parent_file_templates$', get_parent_file_templates_by_rf, name="get_parent_file_templates_by_rf"),
    re_path(r'^registerForms$', RegisterFormView.as_view(), name="registerForms"),

    # Page INSCRIPTION - Liste des élèves
    re_path(r'^students$', StudentListView.as_view(), name="students"),
    # Page de formulaire d'inscription - ELEVE
    re_path(r'^students/(?P<id>[0-9]+)$', StudentView.as_view(), name="students"),
    re_path(r'^search-students', search_students, name='search_students'),
    # Page PARENT - Liste des children
    re_path(r'^children/(?P<id>[0-9]+)$', ChildrenListView.as_view(), name="children"),

    # Page de formulaire d'inscription - RESPONSABLE
    re_path(r'^lastGuardianId$', GuardianView.as_view(), name="lastGuardianId"),

    re_path(r'^registrationFileGroups/(?P<id>[0-9]+)$', RegistrationFileGroupSimpleView.as_view(), name='registrationFileGroupDetail'),
    re_path(r'^registrationFileGroups/(?P<id>[0-9]+)/templates$', get_registration_files_by_group, name="get_registration_files_by_group"),
    re_path(r'^registrationFileGroups$', RegistrationFileGroupView.as_view(), name='registrationFileGroups'),

    re_path(r'^registrationSchoolFileMasters/(?P<id>[0-9]+)$', RegistrationSchoolFileMasterSimpleView.as_view(), name='registrationSchoolFileMasters'),
    re_path(r'^registrationSchoolFileMasters$', RegistrationSchoolFileMasterView.as_view(), name='registrationSchoolFileMasters'),

    re_path(r'^registrationParentFileMasters/(?P<id>[0-9]+)$', RegistrationParentFileMasterSimpleView.as_view(), name='registrationParentFileMasters'),
    re_path(r'^registrationParentFileMasters$', RegistrationParentFileMasterView.as_view(), name="registrationParentFileMasters"),

    re_path(r'^registrationSchoolFileTemplates/(?P<id>[0-9]+)$', RegistrationSchoolFileTemplateSimpleView.as_view(), name='registrationSchoolFileTemplates'),
    re_path(r'^registrationSchoolFileTemplates$', RegistrationSchoolFileTemplateView.as_view(), name="registrationSchoolFileTemplates"),

    re_path(r'^registrationParentFileTemplates/(?P<id>[0-9]+)$', RegistrationParentFileTemplateSimpleView.as_view(), name='registrationParentFileTemplates'),
    re_path(r'^registrationParentFileTemplates$', RegistrationParentFileTemplateView.as_view(), name="registrationSchoolFileTregistrationParentFileTemplatesemplates"),

    re_path(r'^students/(?P<student_id>[0-9]+)/guardians/(?P<guardian_id>[0-9]+)/dissociate', DissociateGuardianView.as_view(), name='dissociate-guardian'),

    re_path(r'^absences$', AbsenceManagementListCreateView.as_view(), name="absence_list_create"),
    re_path(r'^absences/(?P<id>[0-9]+)$', AbsenceManagementDetailView.as_view(), name="absence_detail"),

    re_path(r'^studentCompetencies$', StudentCompetencyListCreateView.as_view(), name="student_competency_list_create"),
    re_path(r'^studentCompetencies/(?P<id>[0-9]+)$', StudentCompetencySimpleView.as_view(), name="student_competency_detail"),

]