o
    .i                  
   @   sd  d Z ddlmZ ddlZddlmZ ee jjZ	ej
edfeg feg feg fedfedfedfedfd	Ze	d
 Ze rHej
jedd n
ej
je	d dd edddZedddZejddgdZg dZg dZdZdZdg ddg didgZdddZdefd d!Zej
e Zed"i  ed" e e d#Z!e!d"i  e!d" e ej"d$d%dZ#ee!fD ]Z$e$d&e# e$d'd qee!d(Z%d)gZ&d*d+ed,d-d.id/iZ'ed,Z(ed,Z)d0d1id0d2id0d3id0d4igZ*d5Z+d6Z,dZ-dZ.d7Z/d8Z0d9gd:d;d<g d=d>Z1d?d@dAdBZ2eZ3es$ejdCg dZ4ejdDg dZ5edEZ6edFZ7edGZ8dS )Hz
Django settings for Voice Agent Backend.
Uses django-environ for env vars. Copy backend/.env.example to backend/.env and set
DATABASE_MASTER_URL (or legacy DATABASE_URL) and DATABASE_CLUSTER_URL.
    )PathN)ImproperlyConfiguredFzredis://127.0.0.1:6379/0zws://127.0.0.1:7880 )DEBUGALLOWED_HOSTSCORS_ALLOWED_ORIGINSCSRF_TRUSTED_ORIGINS	REDIS_URLLIVEKIT_URLLIVEKIT_API_KEYLIVEKIT_API_SECRETz.env.docker)	overwritez.env
SECRET_KEYzchange-me-in-productiondefaultr   Tr   z	127.0.0.1)zdjango.contrib.adminzdjango.contrib.authzdjango.contrib.contenttypeszdjango.contrib.sessionszdjango.contrib.messageszdjango.contrib.staticfilesrest_frameworkzrest_framework.authtokendrf_spectacularcorsheaderszapps.users.apps.UsersConfigzapps.conversationszapps.knowledge_basezapps.agentsz
apps.callszapps.livekit)	z-django.middleware.security.SecurityMiddlewarez4config.db_middleware.CloseOldDbConnectionsMiddlewarez%corsheaders.middleware.CorsMiddlewarez4django.contrib.sessions.middleware.SessionMiddlewarez)django.middleware.common.CommonMiddlewarez)django.middleware.csrf.CsrfViewMiddlewarez7django.contrib.auth.middleware.AuthenticationMiddlewarez4django.contrib.messages.middleware.MessageMiddlewarez6django.middleware.clickjacking.XFrameOptionsMiddlewarezconfig.urlszconfig.wsgi.applicationz/django.template.backends.django.DjangoTemplatescontext_processors)z(django.template.context_processors.debugz*django.template.context_processors.requestz+django.contrib.auth.context_processors.authz3django.contrib.messages.context_processors.messages)BACKENDDIRSAPP_DIRSOPTIONSutf8mb4z"SET sql_mode='STRICT_TRANS_TABLES')charsetinit_commandreturnc                  C   s8   t jddd } | st jddd } | std| S )NDATABASE_MASTER_URLr   r   DATABASE_URLzXSet DATABASE_MASTER_URL (or DATABASE_URL) in backend/.env for the MySQL master database.)envstrstripr   )url r#   6/var/www/html/livekitdocker/backend/config/settings.py_master_db_url^   s   r%   r   DATABASE_CLUSTER_URLDATABASE_CONN_MAX_AGE<   CONN_MAX_AGECONN_HEALTH_CHECKS)r   clusterz$config.db_router.MasterClusterRouterr   zdjango_redis.cache.RedisCacher	   CLIENT_CLASSz!django_redis.client.DefaultClient)r   LOCATIONr   NAMEzHdjango.contrib.auth.password_validation.UserAttributeSimilarityValidatorz>django.contrib.auth.password_validation.MinimumLengthValidatorz?django.contrib.auth.password_validation.CommonPasswordValidatorz@django.contrib.auth.password_validation.NumericPasswordValidatorzen-usUTCzstatic/zdjango.db.models.BigAutoFieldz#rest_framework.permissions.AllowAnyz.rest_framework.pagination.PageNumberPagination   z"drf_spectacular.openapi.AutoSchema)z.config.auth_backends.BearerTokenAuthenticationz1rest_framework.authentication.TokenAuthenticationz3rest_framework.authentication.SessionAuthentication)DEFAULT_PERMISSION_CLASSESDEFAULT_PAGINATION_CLASS	PAGE_SIZEDEFAULT_SCHEMA_CLASSDEFAULT_AUTHENTICATION_CLASSESzVoicebot APIz0Django REST API for bots, knowledge base, calls.z1.0.0)TITLEDESCRIPTIONVERSIONr   r   r
   r   r   )9__doc__pathlibr   environdjango.core.exceptionsr   __file__resolveparentBASE_DIREnvboollistr    r   _docker_envexistsread_envr   r   r   INSTALLED_APPS
MIDDLEWAREROOT_URLCONFWSGI_APPLICATION	TEMPLATES_mysql_optionsr%   db_url_config
_db_master
setdefaultupdatedb_db_clusterint_db_conn_max_age_cfg	DATABASESDATABASE_ROUTERSCACHESCELERY_BROKER_URLCELERY_RESULT_BACKENDAUTH_PASSWORD_VALIDATORSLANGUAGE_CODE	TIME_ZONEUSE_I18NUSE_TZ
STATIC_URLDEFAULT_AUTO_FIELDREST_FRAMEWORKSPECTACULAR_SETTINGSCORS_ALLOW_ALL_ORIGINSr   r   r
   r   r   r#   r#   r#   r$   <module>   s    
