o
    |Vj                     @   s   d Z ddlZddlZddlZddlmZ G dd dZe Zdd Zdd	 Z	e
d
krLed ed ee ed ed ed ed ed dS dS )uZ   
config_sqlite_api.py
Gerencia a URL da API SQLite conforme o ambiente (local/produção)
    N)Pathc                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )SQLiteAPIConfigu   
    Detecta automaticamente o ambiente e fornece a URL correta da API SQLite.
    
    Prioridade de configuração:
    1. Variável de ambiente SQLITE_API_URL
    2. Arquivo config_api.json local
    3. URL padrão de desenvolvimento
    c                 C   s   |   | _|  | _d S )N)_detect_environmentenvironment_get_api_urlurlself r
   L/var/www/html/robo.fernandesemelo.com.br/rex_simulation/config_sqlite_api.py__init__   s   
zSQLiteAPIConfig.__init__c                 C   sP   t dd }|dv rdS |dv rdS tt drt  jnd}|d	kr&dS dS )
u=   Detecta se está em ambiente de produção ou desenvolvimentoZENVIRONMENT )producao
productionprodr   )desenvolvimentoZdevelopmentdevr   unameWindowsLinux)osgetenvlowerhasattrr   sysname)r	   envZsistemar
   r
   r   r      s   z#SQLiteAPIConfig._detect_environmentc              
   C   s   t d}|rtd|  |S ttjd }| rmz8t|ddd}t	|}W d   n1 s3w   Y  |
| ji 
d}|rRtd	| j d
|  |W S W n tyl } ztd|  W Y d}~nd}~ww d}td|  |S )u   Obtém a URL da API SQLiteZSQLITE_API_URLu6   ✓ URL da API SQLite (via variável SQLITE_API_URL): zconfig_api.jsonrzutf-8)encodingNZsqlite_api_urlu   ✓ URL da API SQLite (z): u!   ⚠ Erro ao ler config_api.json: z%http://localhost/projetos/rex/api.phpu+   ⚠ Usando URL padrão de desenvolvimento: )r   r   printr   __file__parentexistsopenjsonloadgetr   	Exception)r	   Zenv_urlconfig_filefconfigr   eZdefault_urlr
   r
   r   r   ,   s,   
zSQLiteAPIConfig._get_api_urlc                 C   s   d| j  d| j S )Nz
Ambiente: z | URL: )r   r   r   r
   r
   r   __str__H   s   zSQLiteAPIConfig.__str__N)__name__
__module____qualname____doc__r   r   r   r+   r
   r
   r
   r   r      s    	r   c                   C      t jS )zRetorna a URL da API SQLite)sqlite_configr   r
   r
   r
   r   obter_url_apiO      r2   c                   C   r0   )zRetorna o ambiente detectado)r1   r   r
   r
   r
   r   obter_ambienteS   r3   r4   __main__u   🔧 SQLite API Configurationz2==================================================u   
Para customizar em produção:z;1. Edite config_api.json e defina 'producao.sqlite_api_url'u?   2. Ou defina variável de ambiente: export SQLITE_API_URL='...'z+3. Ou defina: export ENVIRONMENT='producao')r/   r   r#   socketpathlibr   r   r1   r2   r4   r,   r   r
   r
   r
   r   <module>   s&   A