from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import *
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

router = DefaultRouter()
# router.register(r'usuarios_all', AllUsuarioViewSet, basename='usuarios_all')
# router.register(r'usuarios', UsuarioViewSet)
# router.register(r'clientes', ClienteViewSet)
# router.register(r'niveis', NivelViewSet)
router.register(r'favoritos', FavoritoViewSet)
router.register(r'contatos-cliente', ContatoClienteViewSet)
router.register(r'categorias', CategoriaViewSet)
router.register(r'posts', PostViewSet)
router.register(r'banners-mosaicos', BannerMosaicoViewSet)
router.register(r'simulacoes', SimulacaoViewSet)
router.register(r'assuntos', AssuntoViewSet)
router.register(r'contatos', ContatoViewSet)
router.register(r'imprensa', ImprensaViewSet)
router.register(r'assuntos-ouvidoria', AssuntoOuvidoriaViewSet)
router.register(r'ouvidoria', OuvidoriaViewSet)
router.register(r'grupos-perguntas-frequentes', GrupoPerguntaFrequenteViewSet)
router.register(r'perguntas-frequentes', PerguntaFrequenteViewSet)
router.register(r'porque-remax', PorqueRemaxViewSet)
router.register(r'remax-no-brasil', RemaxNoBrasilViewSet)
router.register(r'reconhecimentos', ReconhecimentoViewSet)
router.register(r'remax-no-mundo', RemaxNoMundoViewSet)
router.register(r'universidade', UniversidadeViewSet)
router.register(r'parceiros', ParceiroViewSet)
router.register(r'relacao-investidores', RelacaoInvestidorViewSet)
router.register(r'cidades-detalhes', CidadeDetalheViewSet)
router.register(r'estados-detalhes', EstadoDetalheViewSet)
router.register(r'bairros-detalhes', BairroDetalheViewSet)
router.register(r'construtoras', ConstrutoraViewSet)
router.register(r'politica-privacidade', PoliticaPrivacidadeTextoViewSet)
router.register(r'termos-uso', TermosDeUsoViewSet)

### Lançamentos
# router.register(r'lancamentos-simple', LancamentoSimpleViewSet)
# router.register(r'fotos-lancamentos', FotosLancamentoSimpleViewSet)

router.register(r'lancamentos', LancamentoViewSet)
router.register(r'lancamentos-imagens', LancamentoImagemViewSet)
router.register(r'lancamentos-plantas', LancamentoPlantaViewSet)
#router.register(r'lancamentos-unidades', LancamentoUnidadeViewSet)
router.register(r'lancamentos-plantas-imagens', LancamentoPlantaImagemViewSet)
router.register(r'lancamentos-caracteristicas', LancamentoCaracteristicasViewSet)
router.register(r'banners-agencias', AgenciaBannerViewSet)
router.register(r'contato-direto', ContatoDiretoViewSet)
router.register(r'anuncie', AnuncieViewSet)
router.register(r'email-settings', EmailSettingsViewSet)
router.register(r'banner-publicidade', BannerPublicidadeViewSet)
router.register(r'buscas-usuarios', QueryParamsUserViewSet)
router.register(r'buscas', QueryParamsGeneralViewSet)

router.register(r'nossa-historia', NossaHistoriaViewSet)
router.register(r'paginas', PaginaViewSet)
router.register(r'seo-tags', SEOTagViewSet)
router.register(r'seo-paginas', SEOPaginaViewSet)

#router.register(r'permissions', PermissionViewSet)

urlpatterns = [
    path('', include(router.urls)),
    path('upload_test/', FileUploadView.as_view(), name='upload_test'),
    # path('usuarios/login', UsuarioViewSet.as_view({'post': 'login'}), name='login'),
    # path('clientes/login', ClienteViewSet.as_view({'post': 'login'}), name='login'),
    # path('refresh/', CustomTokenRefreshView.as_view(), name='refresh'),

]

from .views import api_docs

urlpatterns += [
    path('admin/api-docs/', api_docs, name='api_docs'),
    
]


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


schema_view = get_schema_view(
   openapi.Info(
      title="Portal RE/Max Panel API",
      default_version='1.0',
      description="API for panel data",  
      #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('panel/', 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'), name='panel_spaghetti')]

urlpatterns += [
    path("plate/", Plate.as_view()),
]