from django.apps import apps
from django.urls import include, path
from aemo import views, views_stats

urlpatterns = [
    path('contact/add/', views.ContactCreateView.as_view(), name='contact-add'),
    path('contact/list/', views.ContactListView.as_view(), name='contact-list'),
    path('contact/<int:pk>/edit/', views.ContactUpdateView.as_view(), name='contact-edit'),
    path('contact/<int:pk>/delete/', views.ContactDeleteView.as_view(), name='contact-delete'),
    path('contact/dal/', views.ContactAutocompleteView.as_view(), name='contact-autocomplete'),
    path('contact/dal-ope/', views.ContactAutocompleteView.as_view(ope=True),
         name='contact-ope-autocomplete'),
    path('contact/dal-externe/', views.ContactExterneAutocompleteView.as_view(),
         name='contact-externe-autocomplete'),
    path('contact/test/doublon/', views.ContactTestDoublon.as_view(), name='contact-doublon'),

    path('service/add/', views.ServiceCreateView.as_view(), name='service-add'),
    path('service/list/', views.ServiceListView.as_view(), name='service-list'),
    path('service/<int:pk>/edit/', views.ServiceUpdateView.as_view(), name='service-edit'),
    path('service/<int:pk>/delete/', views.ServiceDeleteView.as_view(), name='service-delete'),

    path('famille/dal/', views.FamilleAutoCompleteView.as_view(), name="famille-autocomplete"),
    # Famille
    path('famille/list/', views.FamilleListView.as_view(), name='famille-list'),
    path('famille/attente/', views.FamilleListView.as_view(mode='attente'), name='famille-attente'),
    path('famille/add/', views.FamilleCreateView.as_view(), name='famille-add'),
    path('famille/<int:pk>/edit/', views.FamilleUpdateView.as_view(), name='famille-edit'),
    path('famille/<int:obj_pk>/niveau/add/', views.NiveauCreateUpdateView.as_view(), name='niveau-add'),
    path('famille/<int:obj_pk>/niveau/<int:pk>/edit/', views.NiveauCreateUpdateView.as_view(),
         name='niveau-edit'
         ),
    path('famille/<int:obj_pk>/niveau/<int:pk>/delete/', views.NiveauDeleteView.as_view(),
         name='niveau-delete'),

    # Personne
    path('famille/<int:pk>/personne/add/', views.PersonneCreateView.as_view(),
         name="personne-add"),
    path('famille/<int:pk>/personne/<int:obj_pk>/edit/',
         views.PersonneUpdateView.as_view(), name="personne-edit"),
    path('famille/<int:pk>/personne/<int:obj_pk>/delete/',
         views.PersonneDeleteView.as_view(), name='personne-delete'),

    path('personne/<int:pk>/formation/', views.FormationView.as_view(), name='formation'),
    path('personne/<int:pk>/contacts/', views.PersonneReseauView.as_view(),
         name='personne-reseau-list'),
    path('personne/<int:pk>/contact/add/', views.PersonneReseauAdd.as_view(),
         name='personne-reseau-add'),
    path('personne/<int:pk>/contact/<int:obj_pk>/remove/', views.PersonneReseauRemove.as_view(),
         name='personne-reseau-remove'),

    # Prestations
    path('prestation/menu/', views.PrestationMenu.as_view(), name='prestation-menu'),
    path('famille/<int:pk>/prestation/list/', views.PrestationListView.as_view(), name='journal-list'),
    path('famille/<int:pk>/prestation/add/', views.PrestationCreateView.as_view(), name='prestation-famille-add'),
    path('famille/<int:pk>/prestation/<int:obj_pk>/edit/', views.PrestationUpdateView.as_view(),
         name='prestation-edit'),
    path('famille/<int:pk>/prestation/<int:obj_pk>/delete/', views.PrestationDeleteView.as_view(),
         name='prestation-delete'),
    path('prestation_gen/list/', views.PrestationListView.as_view(), name='prestation-gen-list'),
    path('prestation_gen/add/', views.PrestationCreateView.as_view(), name='prestation-gen-add'),

    path('famille/<int:pk>/upload/', views.DocumentUploadView.as_view(),
         name='famille-doc-upload'),
    path('famille/<int:pk>/doc/<int:doc_pk>/delete/', views.DocumentDeleteView.as_view(),
         name='famille-doc-delete'),
    path('famille/<int:pk>/reactivation/', views.FamilleReactivationView.as_view(),
         name='famille-reactivation'),

    # Doc. à imprimer
    path('famille/<int:pk>/print-evaluation/', views.EvaluationPDFView.as_view(), name='print-evaluation'),
    path('famille/<int:pk>/print-info/', views.CoordonneesPDFView.as_view(), name='print-coord-famille'),
    path('famille/<int:pk>/print-journal', views.JournalPDFView.as_view(), name='print-journal'),
    path('bilan/<int:pk>/print/', views.BilanPDFView.as_view(), name='print-bilan'),

    # Rapport
    path('famille/<int:pk>/rapport/add/', views.RapportCreateView.as_view(),
         name='famille-rapport-add'),
    path('famille/<int:pk>/rapport/<int:obj_pk>/', views.RapportDisplayView.as_view(),
         name='famille-rapport-view'),
    path('famille/<int:pk>/rapport/<int:obj_pk>/edit/', views.RapportUpdateView.as_view(),
         name='famille-rapport-edit'),
    path('famille/<int:pk>/rapport/<int:obj_pk>/delete/', views.RapportDeleteView.as_view(),
         name='famille-rapport-delete'),
    path('famille/<int:pk>/rapport/<int:obj_pk>/print/', views.RapportPDFView.as_view(),
         name='famille-rapport-print'),
    path('famille/<int:pk>/adresse/change/', views.FamilleAdresseChangeView.as_view(),
         name='famille-adresse-change'),

    # Demande, suivi, agenda, suivis terminés
    path('famille/<int:pk>/demande/', views.DemandeView.as_view(), name='demande'),
    path('famille/<int:pk>/suivi/', views.SuiviView.as_view(), name='famille-suivi'),
    path('famille/<int:pk>/intervenant/add/', views.SuiviIntervenantCreate.as_view(), name='intervenant-add'),
    path('famille/<int:pk>/intervenant/<int:obj_pk>/edit/', views.SuiviIntervenantUpdateView.as_view(),
         name='intervenant-edit'),
    path('famille/<int:pk>/agenda/', views.AgendaSuiviView.as_view(), name='famille-agenda'),
    path('famille/<int:pk>/bilan/add/', views.BilanEditView.as_view(is_create=True),
         name='famille-bilan-add'),
    path('famille/<int:pk>/bilan/<int:obj_pk>/', views.BilanDetailView.as_view(),
         name='famille-bilan-view'),
    path('famille/<int:pk>/bilan/<int:obj_pk>/edit/', views.BilanEditView.as_view(),
         name='famille-bilan-edit'),
    path('famille/<int:pk>/bilan/<int:obj_pk>/delete/', views.BilanDeleteView.as_view(),
         name='famille-bilan-delete'),
    path('famille/archivable/list/', views.FamilleArchivableListe.as_view(), name='famille-archivable'),

    path('suivis_termines/', views.SuivisTerminesListView.as_view(), name='suivis-termines'),

    path('charge_utilisateurs/', views.UtilisateurChargeDossierView.as_view(), name='charge-utilisateurs'),

    path('utilisateur/', views.UtilisateurListView.as_view(),
         name='utilisateur-list'),
    path('utilisateur/<int:pk>/edit/', views.UtilisateurUpdateView.as_view(),
         name='utilisateur-edit'),
    path('utilisateur/add/', views.UtilisateurCreateView.as_view(),
         name='utilisateur-add'),
    path('utilisateur/<int:pk>/delete/', views.UtilisateurDeleteView.as_view(),
         name='utilisateur-delete'),
    path('utilisateur/<int:pk>/password_reinit/', views.UtilisateurPasswordReinitView.as_view(),
         name='utilisateur-password-reinit'),
    path('utilisateur/<int:pk>/otp_device/reinit/', views.UtilisateurOtpDeviceReinitView.as_view(),
         name='utilisateur-otp-device-reinit'),
    path('utilisateur/<int:pk>/journalacces/', views.UtilisateurJournalAccesView.as_view(),
         name='utilisateur-journalacces'),
    path('utilisateur/dal/', views.UtilisateurAutocompleteView.as_view(),
         name='utilisateur-autocomplete'),
    path('utilisateur/desactive/list/', views.UtilisateurListView.as_view(is_active=False),
         name='utilisateur-desactive-list'),
    path('utilisateur/<int:pk>/reactiver/', views.UtilisateurReactivateView.as_view(),
         name='utilisateur-reactiver'),

    path('utilisateur/prestation/', views.PrestationPersonnelleListView.as_view(),
         name='prestation-personnelle'),
    path('prestation/generale/', views.PrestationGeneraleListView.as_view(),
         name='prestation-generale'),

    path('cerclescolaire/', views.CercleScolaireListView.as_view(),
         name='cercle-list'),
    path('cerclescolaire/<int:pk>/edit/', views.CercleScolaireUpdateView.as_view(),
         name='cercle-edit'),
    path('cerclescolaire/add/', views.CercleScolaireCreateView.as_view(),
         name='cercle-add'),
    path('cerclescolaire/<int:pk>/delete/', views.CercleScolaireDeleteView.as_view(),
         name='cercle-delete'),

    path('role/', views.RoleListView.as_view(), name='role-list'),
    path('role/<int:pk>/edit/', views.RoleUpdateView.as_view(), name='role-edit'),
    path('role/add/', views.RoleCreateView.as_view(), name='role-add'),
    path('role/<int:pk>/delete/', views.RoleDeleteView.as_view(), name='role-delete'),

    path('permissions/', views.PermissionOverview.as_view(), name='permissions'),

    path('export/prestation/', views.ExportPrestationView.as_view(), name='export-prestation'),

    path('statistiques/', views_stats.StatistiquesView.as_view(), name='stats'),
    path('statistiques/localite/', views_stats.StatistiquesParLocaliteView.as_view(), name='stats-localite'),
    path('statistiques/region/', views_stats.StatistiquesParRegionView.as_view(), name='stats-region'),
    path('statistiques/duree/', views_stats.StatistiquesParDureeView.as_view(), name='stats-duree'),
    path('statistiques/age/', views_stats.StatistiquesParAgeView.as_view(), name='stats-age'),
    path('statistiques/motifs/', views_stats.StatistiquesMotifsView.as_view(), name='stats-motifs'),
    path('statistiques/prestations/', views_stats.StatistiquesPrestationView.as_view(), name='stats-prestations'),
    path('statistiques/niveaux/', views_stats.StatistiquesNiveauxView.as_view(), name='stats-niveaux'),
]

if apps.is_installed('debug_toolbar'):
    urlpatterns.append(path('__debug__/', include('debug_toolbar.urls')))
