ó
    |îÌj»$  ã                   óÀ  • % S r SSKrSSKJr  SSKJr  \" 5         SxS\S\S\4S jjr\R                  " S	S
5      R                  5       R                  5       r\\S	'   \S:H  r\\S'   \" \R                  " SS5      5      r\\S'   \R                  " SS5      r\\S'   \R                  " SS5      R%                  S5       V s/ s H*  n U R                  5       (       d  M  U R                  5       PM,     sn r\\   \S'   \R                  " SS5      R%                  S5       V s/ s H)  o R                  5       (       d  M  U R                  5       PM+     sn r\\   \S'   \" \R                  " SS5      5      R-                  5       r\\S'   \" \R                  " SS5      5      R-                  5       r\\S'   \" \R                  " SS5      5      R-                  5       r\\S'   \" \R                  " SS5      5      R-                  5       r\\S'   \" \R                  " SS5      5      R-                  5       r\\S'   \" \R                  " S S!5      5      R-                  5       r\\S '   \R                  " S"S#5      r\\S"'   \" \R                  " S$S%5      5      r\\S$'   \R                  " S&S'5      r\\S&'   \R                  " S(S)5      r \\S('   \R                  " S*S'5      r!\\S*'   \" \R                  " S+S,5      5      r"\\S+'   \R                  " S-S.5      RG                  S/5      r$\\S-'   \R                  " S0S)5      r%\\S0'   \R                  " S1S'5      r&\\S1'   \R                  " S2S)5      r'\\S2'   \" \R                  " S3S45      5      r(\\S3'   \" S5S65      r)\\S5'   \*" \R                  " S7S85      5      r+\*\S7'   \*" \R                  " S9S:5      5      r,\*\S9'   \*" \R                  " S;S<5      5      r-\*\S;'   \" \R                  " S=S85      5      r.\\S='   \" \R                  " S>S?5      5      r/\\S>'   1 S@kr0\R                  " SAS)5      r1\\SA'   \R                  " SBS)5      r2\\SB'   \" \R                  " SCSD5      5      r3\\SC'   \R                  " SES)5      r4\\SE'   \R                  " SFS)5      r5\\SF'   \R                  " SGS)5      r6\\SG'   \" \R                  " SHSI5      5      r7\\SH'   \" \R                  " SJSK5      5      r8\\SJ'   \" \R                  " SLSM5      5      r9\\SL'   \*" \R                  " SNSO5      5      \*" \R                  " SPSQ5      5      \*" \R                  " SRSS5      5      \*" \R                  " STSQ5      5      \*" \R                  " SUSQ5      5      \*" \R                  " SVSO5      5      \*" \R                  " SWSX5      5      SY.r:\R                  " SZS)5      r;\\SZ'   \R                  " S[S)5      =(       d    \R                  " S\S)5      r<\\S['   \" \R                  " S]S^5      5      r=\\S]'   \R                  " S_S`5      R}                  5       r?\\S_'   \" SaS65      r@\\Sa'   \R                  " SbSc5      rA\\Sb'   \B" Sd\" \R                  " SeSf5      5      5      rC\\Se'   \B" Sd\" \R                  " SgSh5      5      5      rD\\Sg'   \*" \R                  " SiSj5      5      rE\*\Si'   \*" \R                  " SkSl5      5      rF\*\Sk'   \*" \R                  " SmS,5      5      rG\*\Sm'   \*" \R                  " SnSo5      5      rH\*\Sn'   \*" \R                  " SpS<5      5      rI\*\Sp'   \" \R                  " SqS<5      5      rJ\\Sq'   \R                  " SrSs5      rK\\Sr'   \" \R                  " St\" Su5      5      5      rL\\St'   \R                  " SvSw5      rM\\Sv'   gs  sn f s  sn f )yu­  
Configuration centrale â€” lit les variables d'environnement une seule fois.

âš ï¸�  CLÃ‰ API STORYFACE (thÃ¨mes IA Â« photo magique Â») : STORYFACE_API_KEY dans
    backend/.env, puis redÃ©marrer le service.

APP_ENV=production active les contrÃ´les de dÃ©marrage stricts (voir
core.security.validate_production_config) : mots de passe par dÃ©faut, secret
JWT absent, Stripe non configurÃ© â†’ le service refuse de dÃ©marrer.
é    N)ÚPath)Úload_dotenvÚnameÚdefaultÚreturnc                 ól   • [         R                  " X5      R                  5       R                  5       S;   $ )N)Ú1ÚtrueÚyesÚon)ÚosÚgetenvÚstripÚlower)r   r   s     ÚND:\Ingenieria\TRABAJOS ONLINE\Projects\11- Photo School\backend\core\config.pyÚ_boolr      s)   € Ü�9Š9�TÓ#×)Ñ)Ó+×1Ñ1Ó3Ð7QÑQÐQó    ÚAPP_ENVÚdevelopmentÚ
productionÚIS_PRODUCTIONÚPORTÚ3002ÚHOSTz0.0.0.0ÚCORS_ORIGINSz+http://localhost:5174,http://localhost:5173Ú,ÚTRUSTED_PROXIESz127.0.0.1,::1Ú
PHOTOS_DIRz./photosÚ
THUMBS_DIRz./thumbsÚINCOMING_DIRz
./incomingÚBACKUPS_DIRz	./backupsÚPRODUCTS_DIRz
./productsÚLOG_DIRz./logsÚ
MYSQL_HOSTz	127.0.0.1Ú
MYSQL_PORTÚ3306Ú
MYSQL_USERÚmeeconicÚMYSQL_PASSWORDÚ ÚMYSQL_DBÚMYSQL_POOL_SIZEÚ10ÚAUTH_SERVER_URLzhttps://auth.storyface.aiÚ/ÚSTORYFACE_API_KEYÚSTORYFACE_SHORT_CODEÚFTP_HOSTÚFTP_PORTÚ21ÚORGANIZER_ENABLEDr
   ÚORGANIZER_POLL_SECSÚ60ÚFTP_STABLE_SECSz1.5ÚPURGE_MIN_AGE_SECSÚ30ÚPHOTO_RETENTION_DAYSÚRGPD_ALERT_THRESHOLDÚ200>   ú.JPGú.PNGú.jpgú.pngú.JPEGú.WEBPú.jpegú.webpÚSTRIPE_SECRET_KEYÚSTRIPE_WEBHOOK_SECRETÚUNPAID_ORDER_TTL_HOURSÚ24ÚADMIN_PASSWORDÚADMIN_JWT_SECRETÚMEDIA_SECRETÚMEDIA_URL_TTL_SECSÚ7200ÚDOWNLOAD_URL_TTL_SECSÚ86400ÚEMAIL_ATTACH_MAX_MBÚ18ÚPRICE_PRINT_10X15Ú9ÚPRICE_PRINT_20X30Ú14ÚPRICE_DIGITALÚ7Ú
PRICE_PACKÚPRICE_MAGIC_PRINTÚPRICE_MAGIC_DIGITALÚPRICE_MAGIC_PACKÚ20)Úprice_print_10x15Úprice_print_20x30Úprice_digitalÚ
price_packÚprice_magic_printÚprice_magic_digitalÚprice_magic_packÚ
SENTRY_DSNÚALERT_EMAILÚCOMPANY_NOTIFICATION_EMAILÚALERT_COOLDOWN_SECSÚ3600Ú	LOG_LEVELÚINFOÚBACKGROUND_TASKS_ENABLEDÚKIS_API_URLz1https://auth.storyface.ai/api/v2/kis/apply_effecté   ÚKIS_PARALLEL_MAXÚ2ÚSF_RETRY_ATTEMPTSÚ3ÚSF_RETRY_BASE_DELAYz3.0ÚWATCHDOG_DEBOUNCE_SECSÚ5ÚORGANIZER_RETRY_SECSÚORGANIZER_STALL_SECSÚ300ÚORGANIZER_RESCAN_SECSÚTRASH_RETENTION_DAYSÚEVENT_TIMEZONEzEurope/ParisÚSCAN_MAX_IMAGE_BYTESi  0 ÚQR_REDIRECT_SCHEMEÚhttps)Úfalse)NÚ__doc__r   Úpathlibr   Údotenvr   ÚstrÚboolr   r   r   r   r   Ú__annotations__r   Úintr   r   Úsplitr   Úlistr   Úresolver   r   r    r!   r"   r#   r$   r%   r'   r)   r+   r,   Úrstripr.   r0   r1   r2   r3   r5   Úfloatr6   r8   r9   r;   r<   ÚIMAGE_EXTENSIONSrF   rG   rH   rJ   rK   rL   rM   rO   rQ   ÚDEFAULT_PRICESre   rf   rh   Úupperrj   rl   rm   Úmaxro   rq   rs   rt   rv   rw   ry   rz   r{   r|   r}   )Úss   0r   Ú<module>r‘      sJ  ðò	ó 
Ý å á „ñR�ð R˜cð R°õ Rð �yŠy˜ MÓ2×8Ñ8Ó:×@Ñ@ÓB€ˆÓ BØ Ñ-€ˆtÓ -ñ �—	’	˜& &Ó)Ó*€€cÓ *Ø�IŠI�f˜iÓ(€€cÓ (Ø.0¯iªiØÐAó/CßCHÁ5ÈÃ:ð/Nó \ò /N¨ØQR×QXÑQX×QZó %˜1Ÿ7™7ž9ñ /Nñ \€ˆd�3‰ió \ð 24·²Ð;LÈoÓ1^×1dÑ1dÐehÔ1iÓwÒ1i¨A×mtÑmt×mv›i˜aŸg™gžiÑ1iÑw€��c‘Ó wñ ˜"Ÿ)š) L°JÓ?Ó@×HÑHÓJ€
ˆdÓ JÙ˜"Ÿ)š) L°JÓ?Ó@×HÑHÓJ€
ˆdÓ JÙ˜"Ÿ)š) N°LÓAÓB×JÑJÓL€ˆdÓ LÙ˜"Ÿ)š) M°KÓ@ÓA×IÑIÓK€ˆdÓ Ká˜"Ÿ)š) N°LÓAÓB×JÑJÓL€ˆdÓ LÙ˜"Ÿ)š) I°HÓ=Ó>×FÑFÓH€ˆdÓ Hð —y’y ¨{Ó;€
�Ó ;Ù˜2Ÿ9š9 \°6Ó:Ó;€
�Ó ;Ø—y’y ¨zÓ:€
�Ó :Ø—y’yÐ!1°2Ó6€�Ó 6Ø—y’y ¨ZÓ8€�Ó 8Ù˜2Ÿ9š9Ð%6¸Ó=Ó>€�Ó >ð ŸIšIÐ&7Ð9TÓU×\Ñ\Ð]`Óa€�cÓ aØŸIšIÐ&9¸2Ó>Ð �cÓ >ØŸIšIÐ&<¸jÓIÐ �cÓ Ið  ŸYšY z°2Ó6€�SÓ 6Ù  §¢¨:°tÓ!<Ó=€�SÓ =Ù"Ð#6¸Ó?Ð �TÓ ?Ù" 2§9¢9Ð-BÀDÓ#IÓJÐ �UÓ JÙ" 2§9¢9Ð->ÀÓ#FÓG€�UÓ GÙ" 2§9¢9Ð-AÀ4Ó#HÓIÐ �UÓ Iñ   §	¢	Ð*@À$Ó GÓHÐ �cÓ Há §	¢	Ð*@À%Ó HÓIÐ �cÓ IâWÐ ð  ŸYšYÐ':¸BÓ?Ð �sÓ ?ØŸYšYÐ'>ÀÓCÐ �sÓ Cá! "§)¢)Ð,DÀdÓ"KÓLÐ ˜Ó Lð Ÿ	š	Ð"2°BÓ7€�#Ó 7ØŸ	š	Ð"4°bÓ9Ð �#Ó 9ØŸ	š	 .°"Ó5€�#Ó 5Ù  §¢Ð+?ÀÓ!HÓIÐ �sÓ IÙ  §¢Ð+BÀGÓ!LÓMÐ �sÓ Mñ ˜rŸyšyÐ)>ÀÓEÓFÐ �SÓ Fñ ! §¢Ð+>À#Ó!FÓGÙ  §¢Ð+>À$Ó!GÓHÙ  §¢¨?À#Ó!FÓGÙ  §¢¨<À$Ó!GÓHÙ  §¢Ð+>À$Ó!GÓHÙ  §¢Ð+@À#Ó!FÓGÙ  §¢Ð+=À$Ó!GÓHñ€ð —9’9˜\¨2Ó.€
ˆSÓ .Ø—9’9˜]¨BÓ/×^°2·9²9Ð=YÐ[]Ó3^€ˆSÓ ^Ù˜rŸyšyÐ)>ÀÓGÓHÐ �SÓ HØ—’˜;¨Ó/×5Ñ5Ó7€	ˆ3Ó 7ñ "'Ð'AÀ6Ó!JÐ ˜$Ó Jð —9’9˜]Ð,_Ó`€ˆSÓ `Ù˜A™s 2§9¢9Ð-?ÀÓ#EÓFÓGÐ �#Ó Gá˜Q¡ B§I¢IÐ.AÀ3Ó$GÓ HÓIÐ �3Ó IÙ" 2§9¢9Ð-BÀEÓ#JÓKÐ �UÓ Kñ !& b§i¢iÐ0HÈ#Ó&NÓ OÐ ˜Ó Oá# B§I¢IÐ.DÀdÓ$KÓLÐ �eÓ Lá# B§I¢IÐ.DÀeÓ$LÓMÐ �eÓ Má$ R§Y¢YÐ/FÈÓ%MÓNÐ �uÓ Nñ   §	¢	Ð*@À$Ó GÓHÐ �cÓ Hð —i’iÐ 0°.ÓA€�Ó Añ   §	¢	Ð*@Á#ÀoÓBVÓ WÓXÐ �cÓ Xð Ÿ)š)Ð$8¸'ÓBÐ �CÔ Bùò_\ùò xs   Ã _Ã_Ä _Ä<_