<?php
namespace App\Config;

use Dotenv\Dotenv;

/**
 * Clase para cargar y acceder a variables de entorno
 */
class Env
{
    private static $loaded = false;
    
    /**
     * Carga las variables de entorno desde el archivo .env
     */
    public static function load()
    {
        if (!self::$loaded) {
            $dotenv = Dotenv::createImmutable(__DIR__ . '/../../');
            $dotenv->load();
            self::$loaded = true;
            
            // Configurar timezone
            date_default_timezone_set(self::get('TIMEZONE', 'UTC'));
        }
    }
    
    /**
     * Obtiene el valor de una variable de entorno
     * 
     * @param string $key Nombre de la variable
     * @param mixed $default Valor por defecto si no existe
     * @return mixed
     */
    public static function get($key, $default = null)
    {
        return $_ENV[$key] ?? $default;
    }
    
    /**
     * Verifica si una variable de entorno existe
     * 
     * @param string $key Nombre de la variable
     * @return bool
     */
    public static function has($key)
    {
        return isset($_ENV[$key]);
    }
}
