
    ڴhB                     <   S r SSKrSSKJr  SSKJrJr  \" \5      R                  5       R                  R                  r
\
S-  r \R                  SS9  \" S	S
S9r\" SS\S9r\" SS\" 5       S9r/ SQr/ SQrSrS\
S-  /SS/ SQ0S./rSrSrSS\" SSS9\" SS S9\" S!S S9\" S"S#S9\" S$S%S9\" S&S'\S9\" S(S\S9S)S*\" S+S,S9S-S..S/.	0rS0S10S0S20S0S30S0S40/rS5r\" S6S7S9rSrSr\" S8S9S9r\" S:\
S;-  S9r \
S<-  /r!S=r"\" S>S?S9r#\" S@\
SA-  S9r$SBr%SCSDSESF/SG/SHSI/SJSK/SLSMSNSOSPSQ.SRSS.r&\" STSU\" 5       S9r'Sr(\" SVSWS9r)\" SXSWS9r*SY/r+SYr,SYr-\r.Sr/SSZ\" S[S\S9S]\" S^S_\S9SS`.SaSbSc.S-\" SdSe\S9Sf.0r0Sgr1Sr2\" ShS\S9r3SiSjSk.SlSmSk.SnSoSk.SpSoSk.SqSrSk.SsStSk.SuSmSk.SvSwSk.SxSySk.SzS{Sk.S|S}Sk.S~.r4\" SSS9\" SS\S9\" SS\S9\" SS\S9\" SS\S9\" SS\S9S.r5\" SSS9\" SSS9\" SS\S9\" SSS9\" SSS9S.r6\" SSS9\" SS\S9\" SS\S9S.r7\" SSUS9\" SSUS9\" \" SSUS95      S.r8\" SS\S9\" SS\9S9\" SS\S9\" SS\S9S.r:S\" SSUS90r;SSSSS.SSS.S.SS\S-  SS.SSSS.S.SS/SS.SS/\" SSS9SS.SS/SSS.SS/SSS.S.S.r<Sr=Sr>Sr?\(       d   \" SS\S9r@SrA\" SS\S9rB\" SS\S9rCSrDSrESrFSSSSSSSG/SESF/SSSSS.SSSSS.SSS.SSS.SSS.SSS.SSS.SSS./S.rGg! \ a    \" S5      r\R                  SS9   GNf = f)a  
Django settings for Stream Processor project.

This module contains all configuration settings for the Django application,
including database configuration, security settings, installed apps,
middleware configuration, and third-party service settings.

The settings are designed to work with python-decouple for environment
variable management, allowing for different configurations across
development, staging, and production environments.
    N)Path)configCsvlogsT)exist_okz	/app/logs
SECRET_KEYz)django-insecure-change-this-in-production)defaultDEBUGF)r	   castALLOWED_HOSTSzlocalhost,127.0.0.1)zdjango.contrib.adminzdjango.contrib.authzdjango.contrib.contenttypeszdjango.contrib.sessionszdjango.contrib.messageszdjango.contrib.staticfilesrest_frameworkcorsheadersdjango_filtersdrf_spectacularz	apps.corezapps.streamszapps.jingleszapps.notificationszapps.monitoring)	z-django.middleware.security.SecurityMiddlewarez*whitenoise.middleware.WhiteNoiseMiddlewarez4django.contrib.sessions.middleware.SessionMiddlewarez%corsheaders.middleware.CorsMiddlewarez)django.middleware.common.CommonMiddlewarez)django.middleware.csrf.CsrfViewMiddlewarez7django.contrib.auth.middleware.AuthenticationMiddlewarez4django.contrib.messages.middleware.MessageMiddlewarez6django.middleware.clickjacking.XFrameOptionsMiddlewarez	core.urlsz/django.template.backends.django.DjangoTemplates	templatescontext_processors)z(django.template.context_processors.debugz*django.template.context_processors.requestz+django.contrib.auth.context_processors.authz3django.contrib.messages.context_processors.messagesz-apps.core.context_processors.settings_context)BACKENDDIRSAPP_DIRSOPTIONSzcore.wsgi.applicationzcore.asgi.applicationr	   zdjango.db.backends.postgresqlDB_NAME	stream_dbDB_USERpostgresDB_PASSWORDDB_HOST	localhostDB_PORT5432DB_CONN_MAX_AGEiX  DB_CONN_HEALTH_CHECKS<   z--c default_transaction_isolation=serializableDB_SSL_MODEpreferstream_processor)connect_timeoutoptionssslmodeapplication_name)	ENGINENAMEUSERPASSWORDHOSTPORTCONN_MAX_AGECONN_HEALTH_CHECKSr   r+   zHdjango.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	TIME_ZONEUTC
STATIC_URLz/static/STATIC_ROOTstaticfilesstaticz7whitenoise.storage.CompressedManifestStaticFilesStorage	MEDIA_URLz/media/
MEDIA_ROOTmediazdjango.db.models.BigAutoFieldz.rest_framework.pagination.PageNumberPagination   z3rest_framework.authentication.SessionAuthenticationz1rest_framework.authentication.TokenAuthenticationz*rest_framework.permissions.IsAuthenticatedz%rest_framework.renderers.JSONRendererz-rest_framework.renderers.BrowsableAPIRendererz*rest_framework.throttling.AnonRateThrottlez*rest_framework.throttling.UserRateThrottlez100/hourz	1000/hourz	30/minutez500/hourz200/hour)anonuserstream_controldetection_apinotification_apiz"drf_spectacular.openapi.AutoSchema)DEFAULT_PAGINATION_CLASS	PAGE_SIZEDEFAULT_AUTHENTICATION_CLASSESDEFAULT_PERMISSION_CLASSESDEFAULT_RENDERER_CLASSESDEFAULT_THROTTLE_CLASSESDEFAULT_THROTTLE_RATESDEFAULT_SCHEMA_CLASSCORS_ALLOWED_ORIGINS CELERY_BROKER_URLzredis://localhost:6379/0CELERY_RESULT_BACKENDjsonzdjango_redis.cache.RedisCache	REDIS_URLzredis://localhost:6379/1z!django_redis.client.DefaultClientREDIS_MAX_CONNECTIONS2   )max_connectionsretry_on_timeoutz,django_redis.serializers.json.JSONSerializerz,django_redis.compressors.zlib.ZlibCompressor)CLIENT_CLASSCONNECTION_POOL_KWARGS
SERIALIZER
COMPRESSORCACHE_DEFAULT_TIMEOUTi,  )r   LOCATIONr   
KEY_PREFIXTIMEOUTz&django.contrib.sessions.backends.cachePERFORMANCE_PROFILING_ENABLEDz&apps.streams.tasks.check_stream_healthg      >@)taskschedulez'apps.streams.tasks.cleanup_old_segmentsg     r@z,apps.jingles.tasks.process_pending_ad_breaksg      N@z,apps.monitoring.tasks.collect_system_metricsz)apps.monitoring.tasks.collect_app_metricsg      ^@z1apps.monitoring.tasks.generate_performance_reportg      @z,apps.monitoring.tasks.monitor_resource_usagez+apps.monitoring.tasks.cleanup_metrics_cacheg      @z4apps.monitoring.tasks.check_external_services_healthg     @z#apps.monitoring.tasks.create_backupg     @z%apps.monitoring.tasks.cleanup_backupsg     u"A)zstream-health-checkzcleanup-old-segmentszprocess-ad-breakszcollect-system-metricszcollect-app-metricszgenerate-performance-reportzmonitor-resource-usagezcleanup-metrics-cachezcheck-external-serviceszcreate-backupzcleanup-backups
OUTPUT_DIRz/app/media/streamsSEGMENT_DURATION   MAX_TS_FILE_NUMBER
   MAX_CAPTURE_RETRIES   CAPTURE_RETRY_INTERVALEXIT_ON_FAILURE)r^   r_   ra   rc   re   rf   
RESOLUTION1280x720ASPECT_RATIOz16:9FPS   MIN_BITRATE2000kMAX_BITRATE4000k)rg   ri   rj   rl   rn   AUDIO_BITRATE128kAUDIO_SAMPLE_RATEi  AUDIO_CHANNELS   )BITRATESAMPLE_RATECHANNELSTELEGRAM_BOT_TOKENTELEGRAM_CHAT_ID)	BOT_TOKENCHAT_IDENABLEDUSE_JINGLESJINGLE_SIMILARITY_THRESHOLDg?MIN_AD_BREAK_DURATION   MAX_AD_BREAK_DURATIONiJ  )r}   SIMILARITY_THRESHOLDr   r   DAI_API_URL   z?{levelname} {asctime} {module} {process:d} {thread:d} {message}{)formatstylez{levelname} {message})verbosesimpleINFOzlogging.FileHandlerz
django.logr   )levelclassfilename	formatterzlogging.StreamHandlerr   )r   r   r   )fileconsoler   r   )handlersr   	LOG_LEVEL)r   r   	propagate)djangocorecelery)versiondisable_existing_loggers
formattersr   rootloggersz/accounts/login//SECURE_SSL_REDIRECT)HTTP_X_FORWARDED_PROTOhttpsSESSION_COOKIE_SECURECSRF_COOKIE_SECUREDENYzStream Processing APIzWComprehensive API for HLS stream capture, jingle detection, and notification managementz1.0.0z/api/v1/z*drf_spectacular.generators.SchemaGenerator)deepLinkingpersistAuthorizationdisplayOperationIdfilterChannelszStream channel management)namedescriptionSessionszStream session monitoringConfigurationsz!Video and audio encoding settingsJinglesz(Jingle template and detection managementz	Ad BreakszAdvertisement break trackingNotificationsz!Multi-channel notification system
MonitoringzSystem health and metrics)TITLEDESCRIPTIONVERSIONSERVE_INCLUDE_SCHEMASCHEMA_PATH_PREFIXDEFAULT_GENERATOR_CLASSSERVE_PERMISSIONSSERVE_AUTHENTICATIONSWAGGER_UI_SETTINGSCOMPONENT_SPLIT_REQUESTSORT_OPERATIONSTAGS)H__doc__ospathlibr   decoupler   r   __file__resolveparentBASE_DIRlogs_dirmkdirPermissionErrorr   boolr
   r   INSTALLED_APPS
MIDDLEWAREROOT_URLCONF	TEMPLATESWSGI_APPLICATIONASGI_APPLICATIONint	DATABASESAUTH_PASSWORD_VALIDATORSLANGUAGE_CODEr2   USE_I18NUSE_TZr4   r5   STATICFILES_DIRSSTATICFILES_STORAGEr8   r9   DEFAULT_AUTO_FIELDREST_FRAMEWORKrI   CORS_ALLOW_CREDENTIALSrK   rL   CELERY_ACCEPT_CONTENTCELERY_TASK_SERIALIZERCELERY_RESULT_SERIALIZERCELERY_TIMEZONECELERY_ENABLE_UTCCACHESSESSION_ENGINESESSION_CACHE_ALIASr[   CELERY_BEAT_SCHEDULESTREAM_CONFIGVIDEO_CONFIGAUDIO_CONFIGTELEGRAM_CONFIGfloatJINGLE_CONFIGEXTERNAL_APISLOGGING	LOGIN_URLLOGIN_REDIRECT_URLLOGOUT_REDIRECT_URLr   SECURE_PROXY_SSL_HEADERr   r   SECURE_BROWSER_XSS_FILTERSECURE_CONTENT_TYPE_NOSNIFFX_FRAME_OPTIONSSPECTACULAR_SETTINGS     9C:\Users\brahi\OneDrive\Desktop\Code\src\core\settings.py<module>r      s  
 
    >!!#**11 f"NNDN! L*UV
 	wD1 0ECER2
.  EK'(  #

		* +  + 
 1y+6y*5=*=y+6y&10#CH$%<dQUV  "FmX> 2
	2 	Z 	P 	Q 	R " ;.		 L*5
]H},DEx'(  P  ;	2	L(W*<=
 5 
 !Q=;'
 	5# 	07!
 	54!
 %#& A3< 4bsuM   .8RS 6@Z[   !  
 2;0JK?#)*A2TW#X$(' IH
 )13SI
& :  !''FPU\` a 
 9
 :
 ?
 ?
 <
 D$
 ?
 >
 G 
 6
 8S- d /CD113G !5rL!"7M$%=rPST/DI z:>6:%#.-9-9 ov6-u3G'= ,b9("5F/<= -DA"#@#TYZ#$;QSQ#$;SsS	 6-4  % X

 .
	 * </"	
 ,!
 ' #F+K8
 #F+
 #F+
=/f 	 (   !64PA ##:DtT 4dN !%"&O %l!$KFG=;
  $"	  $,GH,GH!2UV+UV-KL 1TU.IJ) u  "K HNNDN!"s   K: :LL