from django.urls import path, include
from . import views
from rest_framework.routers import DefaultRouter
from rest_framework.authtoken.views import obtain_auth_token
from schema_graph.views import Schema
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
from django_spaghetti.views import Plate
from rest_framework import permissions

app_name = 'argo'

router = DefaultRouter(trailing_slash=False)

router.register(r'dCanais', views.dCanaisViewSet, basename='dCanais')
router.register(r'dCategorias', views.dCategoriasViewSet, basename='dCategorias')
router.register(r'dConsultores', views.dConsultoresViewSet, basename='dConsultores')
router.register(r'dEmpreendimentos', views.dEmpreendimentosViewSet, basename='dEmpreendimentos')
router.register(r'dEstadosCivis', views.dEstadosCivisViewSet, basename='dEstadosCivis')
router.register(r'dEtapasFunil', views.dEtapasFunilViewSet, basename='dEtapasFunil')
router.register(r'dFaixasIdade', views.dFaixasIdadeViewSet, basename='dFaixasIdade')
router.register(r'dFechamentoDias', views.dFechamentoDiasViewSet, basename='dFechamentoDias')
router.register(r'dInteresses', views.dInteressesViewSet, basename='dInteresses')
router.register(r'dMidias', views.dMidiasViewSet, basename='dMidias')
router.register(r'dMotivosPerdaPausa', views.dMotivosPerdaPausaViewSet, basename='dMotivosPerdaPausa')
router.register(r'dProfissoes', views.dProfissoesViewSet, basename='dProfissoes')
router.register(r'dQuartos', views.dQuartosViewSet, basename='dQuartos')
router.register(r'dRegioes', views.dRegioesViewSet, basename='dRegioes')
router.register(r'dRendas', views.dRendasViewSet, basename='dRendas')
router.register(r'dSexos', views.dSexosViewSet, basename='dSexos')
router.register(r'dStatus', views.dStatusViewSet, basename='dStatus')
router.register(r'dStatusAtividade', views.dStatusAtividadeViewSet, basename='dStatusAtividade')
router.register(r'dStatusProposta', views.dStatusPropostaViewSet, basename='dStatusProposta')
router.register(r'dSuites', views.dSuitesViewSet, basename='dSuites')
router.register(r'dTemperaturas', views.dTemperaturasViewSet, basename='dTemperaturas')
router.register(r'dTipos', views.dTiposViewSet, basename='dTipos')
router.register(r'dTiposAtividade', views.dTiposAtividadeViewSet, basename='dTiposAtividade')
router.register(r'dUnidades', views.dUnidadesViewSet, basename='dUnidades')
router.register(r'dUnidadesEmpreendimento', views.dUnidadesEmpreendimentoViewSet, basename='dUnidadesEmpreendimento')
router.register(r'dUTMCampaign', views.dUTMCampaignViewSet, basename='dUTMCampaign')
router.register(r'dUTMContent', views.dUTMContentViewSet, basename='dUTMContent')
router.register(r'dUTMMedium', views.dUTMMediumViewSet, basename='dUTMMedium')
router.register(r'dUTMSource', views.dUTMSourceViewSet, basename='dUTMSource')
router.register(r'dUTMTerm', views.dUTMTermViewSet, basename='dUTMTerm')
#router.register(r'dUTMs', views.dUTMsViewSet, basename='dUTMs')
router.register(r'dVagas', views.dVagasViewSet, basename='dVagas')
router.register(r'fAcessos', views.fAcessosViewSet, basename='fAcessos')
router.register(r'fAcoesFunil', views.fAcoesFunilViewSet, basename='fAcoesFunil')
router.register(r'fAtividades', views.fAtividadesViewSet, basename='fAtividades')
router.register(r'fOportunidades', views.fOportunidadesViewSet, basename='fOportunidades')
router.register(r'fPropostas', views.fPropostasViewSet, basename='fPropostas')
router.register(r'fVendas', views.fVendasViewSet, basename='fVendas')

### Nested routes
router.register(r'fOportunidadesNested', views.fOportunidadesNestedViewSet, basename='fOportunidadesNested')
router.register(r'fPropostasNested', views.fPropostasNestedViewSet, basename='fPropostasNested')
router.register(r'fVendasNested', views.fVendasNestedViewSet, basename='fVendasNested')
router.register(r'fAtividadesNested', views.fAtividadesNestedViewSet, basename='fAtividadesNested')
router.register(r'fAcoesFunilNested', views.fAcoesFunilNestedViewSet, basename='fAcoesFunilNested')
router.register(r'fAcessosNested', views.fAcessosNestedViewSet, basename='fAcessosNested')
router.register(r'fAcessosNested', views.fAcessosNestedViewSet, basename='fAcessosNested')
#router.register(r'dUTMsNested', views.dUTMsNestedViewSet, basename='dUTMsNested')





urlpatterns = [
    path('', include(router.urls)),
]

urlpatterns += [
    path("schema/", Schema.as_view()),
]


schema_view = get_schema_view(
   openapi.Info(
      title="Api",
      default_version='v1',
      description="API for retrieve data for Power BI use",  
      #terms_of_service="https://www.google.com/policies/terms/",
      #contact=openapi.Contact(name="TEste", url="", email="contact@snippets.local"),
      #license=openapi.License(name="BSD License", url="", version="1.0.1"),
      version="1.0.1",
   ),
   public=False,
   permission_classes=(permissions.IsAuthenticated,),
   patterns=[path('/', include(router.urls))],
   
)


urlpatterns += [
    path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    path('swagger<format>/', schema_view.without_ui(cache_timeout=0), name='schema-json'),
    path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
]


urlpatterns += [path('plate/', include('django_spaghetti.urls'))]