<?php
/**
 * Configuration de l'application
 * Charge les variables d'environnement depuis .env
 */

/**
 * Charge un fichier .env et définit les variables d'environnement
 * @param string $path Chemin vers le fichier .env
 */
function loadEnv(string $path): void
{
    if (!file_exists($path)) {
        return;
    }

    $lines = file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

    foreach ($lines as $line) {
        // Ignorer les commentaires
        if (str_starts_with(trim($line), '#')) {
            continue;
        }

        // Parser KEY=value
        if (str_contains($line, '=')) {
            [$key, $value] = explode('=', $line, 2);
            $key = trim($key);
            $value = trim($value);

            // Supprimer les guillemets si présents
            if (preg_match('/^["\'](.*)["\']\s*$/', $value, $matches)) {
                $value = $matches[1];
            }

            $_ENV[$key] = $value;
            putenv("{$key}={$value}");
        }
    }
}

// Charger le fichier .env
loadEnv(__DIR__ . '/../.env');

// Définir les constantes de configuration
define('APP_ENV', $_ENV['APP_ENV'] ?? 'production');
define('APP_DEBUG', ($_ENV['APP_DEBUG'] ?? 'false') === 'true');
define('APP_URL', $_ENV['APP_URL'] ?? 'http://localhost');

// reCAPTCHA v3
define('RECAPTCHA_SITE_KEY', $_ENV['RECAPTCHA_SITE_KEY'] ?? '');
define('RECAPTCHA_SECRET_KEY', $_ENV['RECAPTCHA_SECRET_KEY'] ?? '');
define('RECAPTCHA_THRESHOLD', 0.5); // Score minimum (0.0 à 1.0)

// Contact
define('CONTACT_EMAIL', $_ENV['CONTACT_EMAIL'] ?? '');

// SMTP
define('SMTP_HOST', $_ENV['SMTP_HOST'] ?? '127.0.0.1');
define('SMTP_PORT', (int) $_ENV['SMTP_PORT'] ?? '1025');
define('SMTP_USERNAME', $_ENV['SMTP_USERNAME'] ?? '');
define('SMTP_PASSWORD', $_ENV['SMTP_PASSWORD'] ?? '');
define('SMTP_ENCRYPTION', $_ENV['SMTP_ENCRYPTION'] ?? 'none'); // none|tls|ssl

define('MAIL_FROM_ADDRESS', $_ENV['MAIL_FROM_ADDRESS'] ?? SMTP_USERNAME);
define('MAIL_FROM_NAME', $_ENV['MAIL_FROM_NAME'] ?? 'Portfolio - Contact');

// Sécurité
define('APP_SECRET', $_ENV['APP_SECRET'] ?? '');


