
    i1                     X    d dl mZ d dlmZ d dlmZmZ  G d de      Zedefd       Zy)	    )	lru_cache)computed_field)BaseSettingsSettingsConfigDictc                      e Zd ZU dZeed<   dZeed<   dZeed<   dZeed<   d	Z	eed
<   dZ
eed<   dZedz  ed<   dZeed<   dZeed<   dZeed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZeed<   dZeed<   dZeed<   dZeed <    ed!d"d#      Zeed$ee   fd%              Zeed$efd&              Z d(d'Z!y))SettingszRestaurant Booking SaaSapp_namedevelopmentapp_environmentzIpostgresql+psycopg2://postgres:postgres@localhost:5432/restaurant_bookingdatabase_urlzhttp://localhost:3000backend_cors_originszhttp://localhost:8000public_base_urlzhttp://backend-hub:8000assistant_api_base_urlNllm_proxy_internal_tokeng      >@assistant_timeout_seconds   assistant_history_limiti  assistant_reply_max_charswhatsapp_access_tokenwhatsapp_phone_number_idwhatsapp_verify_tokenwhatsapp_app_secretzv21.0whatsapp_graph_api_versionzhttps://graph.facebook.comwhatsapp_api_base_urlg      .@whatsapp_timeout_secondsFseed_demo_enabledz.envzutf-8)env_fileenv_file_encodingcase_sensitivereturnc                    | j                   j                         }|j                  d      rr|j                  d      ra|dd }|j	                  d      D cg c]A  }|j                         s|j                         j                  d      j                  d      C c}S |j	                  d      D cg c]#  }|j                         s|j                         % c}S c c}w c c}w )N[]   ,"')r   strip
startswithendswithsplit)selfcleanedinneritems       *PRENOTAZIONI_IA/backend/app/core/config.pycors_origins_listzSettings.cors_origins_list   s     ++113c"w'7'7'<AbMECH;;sCSd4W[WaWaWcDJJL&&s+11#6dd)0s);Ltzz|

LL eLs   C+0C1C!C!c                 V    | j                   j                         j                         dv S )N>   prod
production)r   r)   lowerr-   s    r1   is_productionzSettings.is_production&   s(     ##))+1137MMM    c                 p    | j                   sy | j                  xs dj                         st        d      y )N z6LLM_PROXY_INTERNAL_TOKEN e' obbligatorio in produzione)r8   r   r)   RuntimeErrorr7   s    r1   validate_runtimezSettings.validate_runtime+   s6    !!--3::<WXX =r9   )r    N)"__name__
__module____qualname__r	   str__annotations__r   r   r   r   r   r   r   floatr   intr   r   r   r   r   r   r   r   r   boolr   model_configr   propertylistr2   r8   r=    r9   r1   r   r      s;   -Hc-(OS(cL#c 7#72OS2";C;+/cDj/'+u+#%S%%)s)(,3:,+/cDj/(,3:,&*t*&--!=3=&*e*#t#%vafgLM49 M  M Nt N  NYr9   r   r    c                      t               S )N)r   rI   r9   r1   get_settingsrK   2   s
    :r9   N)		functoolsr   pydanticr   pydantic_settingsr   r   r   rK   rI   r9   r1   <module>rO      s8     # >(Y| (YV h  r9   