"""
URL configuration for yoocare project.

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/4.2/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include
from django.views.generic import TemplateView

from apps.carers import views
from apps.carers.views import SetUpFlowOneFormView, UserProfileDetailView, FindACarerView, CarerReviewView, \
    ManagementView, UserProfileVisitorDetailView, ReviewThankYouView, EditProfileFormView, HomeView, staging_setup, \
    ManageReportsView, ManageUsersView, ManageOrganisations, CreateOrganisation, UpdateOrganisation, \
    OrganisationUploadStaff, OrganisationUploadAdmin, CreateChildOrganisation, ViewOrganisationPeople, \
    manage_send_welcome_emails, activate_account

urlpatterns = [
    path('', HomeView.as_view(), name='homepage'),  # this is the splash page
    path('search', FindACarerView.as_view(), name='find_a_carer'),
    path('carer-search', views.carer_search, name='carer_search'),  #htmx hx-get

    path('report-review/<int:review_pk>', views.report_review, name='report_review'),
    path('keep-review/<int:review_pk>', views.keep_review, name='keep_review'),
    path('delete-review/<int:review_pk>', views.delete_review, name='delete_review'),

    path('p/<str:pin>', UserProfileVisitorDetailView.as_view(), name='visitor_profile'),
    path('add-review/<int:user_id>/', CarerReviewView.as_view(), name='add_review'),
    path('thanks/', ReviewThankYouView.as_view(), name='thanks'),

    # user profile build and profile page
    path('profile/set-up', SetUpFlowOneFormView.as_view(), name='setup_flow_1'),
    path('profile/change', EditProfileFormView.as_view(), name='edit_profile'),
    path('profile/', UserProfileDetailView.as_view(), name='profile'),

    # old setup routes
    # path('set-up-flow/2', QualificationFormSetView.as_view(), name='setup_flow_2'),
    # path('set-up-flow/3', WorkExperienceFormSetView.as_view(), name='setup_flow_3'),
    # path('set-up-flow/4', HobbiesFormView.as_view(), name='setup_flow_4'),
    # path('set-up-flow/5', ExtraInfoFormView.as_view(), name='setup_flow_5'),
    # path('set-up-flow/6', AvatarFormView.as_view(), name='setup_flow_6'),

    # used for testing old, can safely be removed
    path('set-up-flow/7', views.set_up_flow_dummy, name='dummy'),





    # staff only
    path('manage/', ManagementView.as_view(), name='manage'),
    path('manage/reports/', ManageReportsView.as_view(), name='manage_reports'),
    path('manage/users/', ManageUsersView.as_view(), name='manage_users'),
    path('manage/organisations', ManageOrganisations.as_view(), name='manage_organisations'),
    path('manage/organisations/create/', CreateOrganisation.as_view(), name='create_organisation'),
    path('manage/organisations/update/<int:pk>', UpdateOrganisation.as_view(), name='update_organisation'),
    path('organisation/upload-staff/<int:pk>/', OrganisationUploadStaff.as_view(), name='organisation_upload_staff'),
    path('organisation/upload-admin/<int:pk>/', OrganisationUploadAdmin.as_view(), name='organisation_upload_admin'),

    path('organisation/create-child/<int:pk>/', CreateChildOrganisation.as_view(), name='create_child_organisation'),
    path('organisation/view-staff/<int:pk>/', ViewOrganisationPeople.as_view(), name='manage_view_staff_admin'),
    path('organisation/manage-send-welcome-emails/<int:pk>/', manage_send_welcome_emails, name='manage_send_welcome_emails'),
    path('ssetup', staging_setup, name='ssetup'),
    path('activate/<str:uuid>/', activate_account, name='activate_account'),

]
