"""server URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.0/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.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import include, path
from drf_yasg import openapi
from drf_yasg.views import get_schema_view
from rest_framework.documentation import include_docs_urls
from django.views.generic import TemplateView
from server.settings import get_sysconfig

schema_view = get_schema_view(
    openapi.Info(
        title=f'{settings.SYS_NAME}--{get_sysconfig("base.base_name", "demo")}',
        default_version=settings.SYS_VERSION,
        contact=openapi.Contact(email="caoqianming@foxmail.com"),
        license=openapi.License(name="MIT License"),
    ),
    public=True,
    permission_classes=[],
    url=settings.BASE_URL
)

admin.site.site_header = settings.SYS_NAME

urlpatterns = [
    # django后台
    path('django/admin/doc/', include('django.contrib.admindocs.urls')),
    path('django/admin/', admin.site.urls),
    path('django/api-auth/', include('rest_framework.urls')),

    # api
    path('', include('apps.auth1.urls')),
    path('', include('apps.system.urls')),
    path('', include('apps.monitor.urls')),
    path('', include('apps.wf.urls')),
    path('', include('apps.third.urls')),
    path('', include('apps.utils.urls')),
    path('', include('apps.develop.urls')),
    path('', include('apps.hrm.urls')),
    path('', include('apps.am.urls')),
    path('', include('apps.ecm.urls')),
    path('', include('apps.rpm.urls')),
    path('', include('apps.opm.urls')),
    path('', include('apps.vm.urls')),
    path('', include('apps.bi.urls')),
    path('', include('apps.em.urls')),
    path('', include('apps.mtm.urls')),
    path('', include('apps.wpm.urls')),
    path('', include('apps.qm.urls')),
    path('', include('apps.enm.urls')),
    path('', include('apps.fim.urls')),
    path('', include('apps.inm.urls')),
    path('', include('apps.sam.urls')),
    path('', include('apps.pum.urls')),
    path('', include('apps.pm.urls')),
    path('', include('apps.enp.urls')),
    path('', include('apps.edu.urls')),
    path('', include('apps.dpm.urls')),
    path('', include('apps.cm.urls')),
    path('', include('apps.cms.urls')),
    path('', include('apps.wpmw.urls')),
    path('', include('apps.ofm.urls')),
    path('', include('apps.srm.urls')),
    path('', include('apps.asm.urls')),
    path('', include('apps.rem.urls')),
    path('', include('apps.mpr.urls')),

    # 前端页面入口
    path('', TemplateView.as_view(template_name="index.html")),
] + \
    static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + \
    static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

if getattr(settings, 'ENABLE_SWAGGER', True):
    urlpatterns += [
        # api文档
        path('api/swagger/', schema_view.with_ui('swagger',
            cache_timeout=0), name='schema-swagger-ui'),
        path('api/redoc/', schema_view.with_ui('redoc',
            cache_timeout=0), name='schema-redoc'),
    ]