o
    ÷˜­i•	  ã                   @   sN   d dl Z d dlmZ d dlmZ eeƒ ¡ jjd Zeeƒ G dd„ dƒZ	dS )é    N)ÚPath)Úload_dotenvz.envc                   @   sâ   e Zd Zee dd¡ƒZdZe dd¡Ze dd¡Z	e dd¡Z
e dd¡Ze d	d
¡Ze dd¡Ze dd¡Ze dd¡Ze dd¡Ze dd¡Ze deeeƒ ¡ jjd ƒ¡Ze dd¡Zeeƒ ¡ jd Zedd„ ƒZdS )ÚConfigÚ
FLASK_PORTÚ8081z	127.0.0.1ÚTWILIO_ACCOUNT_SIDÚ ÚTWILIO_AUTH_TOKENÚTWILIO_PHONE_NUMBERÚCLAUDE_API_KEYÚCLAUDE_MODELzclaude-sonnet-4-6ÚBILL_PHONE_NUMBERÚODDS_API_KEYÚOURA_ACCESS_TOKENÚSPOTIFY_CLIENT_IDÚSPOTIFY_CLIENT_SECRETÚDASHBOARD_DATA_PATHzdashboard-data.jsonÚ	LOG_LEVELÚINFOÚlogsc                 C   s|   | j | j| j| j| jdœ}dd„ | ¡ D ƒ}|r%tdd |¡› dt› ƒ‚t	| j
ƒ ¡ s4td| j
› ƒ‚| jjddd	 d
S )z.Ensure all required config values are present.)r   r	   r
   r   r   c                 S   s   g | ]\}}|s|‘qS © r   )Ú.0ÚkÚvr   r   ú	config.pyÚ
<listcomp>9   s    z#Config.validate.<locals>.<listcomp>zMissing required config: z, z. Check your .env file at zDashboard data not found: T)ÚparentsÚexist_okN)r   r	   r
   r   r   ÚitemsÚ
ValueErrorÚjoinÚ	_env_pathr   r   ÚexistsÚFileNotFoundErrorÚLOG_DIRÚmkdir)ÚclsÚrequiredÚmissingr   r   r   Úvalidate/   s$   ûÿÿ
ÿzConfig.validateN)Ú__name__Ú
__module__Ú__qualname__ÚintÚosÚgetenvr   Ú
FLASK_HOSTr   r	   r
   r   r   r   r   r   r   r   Ústrr   Ú__file__ÚresolveÚparentr   r   r$   Úclassmethodr)   r   r   r   r   r   
   s*    þr   )
r.   Úpathlibr   Údotenvr   r2   r3   r4   r!   r   r   r   r   r   Ú<module>   s    