"""back_latienda URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.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.conf.urls.static import static
from django.conf import settings

from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView, TokenVerifyView

from core import views as core_views
from products import views as product_views
from companies import views as company_views
from stats import views as stat_views
from .routers import router

admin.site.site_header = 'LaTiendaCOOP Administration'

# Trigger sentry test error
def trigger_error(request):
    division_by_zero = 1 / 0

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/initial/', product_views.initial, name='initial'),
    path('activate/<uidb64>/<token>/',core_views.activate_user, name='activate_user'),
    path('api/v1/social-auth/', include('rest_framework_social_oauth2.urls')),
    path('api/v1/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
    path('api/v1/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
    path('api/v1/token/verify/', TokenVerifyView.as_view(), name='token_verify'),
    path('api/v1/user/change_password/<int:pk>/', core_views.ChangeUserPasswordView.as_view(), name="change-password"),
    path('api/v1/forgotten_password/', core_views.forgotten_password, name="forgotten-password"),
    path('api/v1/admin_stats/', core_views.admin_stats, name='admin-stats'),
    path('api/v1/load_coops/', core_views.load_coop_managers, name='coop-loader'),
    path('api/v1/load_products/', product_views.load_coop_products, name='product-loader'),
    path('api/v1/search_products/', product_views.product_search, name='product-search'),
    path('api/v1/create_company_user/', core_views.create_company_user, name='create-company-user'),
    path('api/v1/my_user/', core_views.my_user, name='my-user'),
    path('api/v1/my_company/', company_views.my_company, name='my-company'),
    path('api/v1/companies/sample/', company_views.random_company_sample , name='company-sample'),
    path('api/v1/search/companies/', company_views.CompanySearchViewSet.as_view({'get': 'list'}) , name='company-search'),
    path('api/v1/purchase_email/', product_views.purchase_email, name='purchase-email'),
    path('api/v1/sync_shop/', product_views.sync_shop, name='purchase-email'),
    path('api/v1/products/all_categories/', product_views.all_categories, name='all-categories'),
    path('api/v1/stats/me/', stat_views.track_user, name='user-tracker'),
    path('api/v1/autocomplete/category-tag/', product_views.CategoryTagAutocomplete.as_view(), name='category-tag-autocomplete'),
    path('api/v1/', include(router.urls)),
    path('sentry-debug/', trigger_error),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
