<?php
/**
 * ASISMA CRM - Configuración Central
 */

// Cargar variables de entorno
$envPath = dirname(__DIR__) . '/.env.php';
if (!file_exists($envPath)) {
    die("Error: No se encontró el archivo de entorno .env.php");
}
$env = require $envPath;

// Definición de constantes de Base de Datos
define('DB_HOST',    isset($env['DB_HOST'])    ? $env['DB_HOST']    : 'localhost');
define('DB_USER',    isset($env['DB_USER'])    ? $env['DB_USER']    : 'root');
define('DB_PASS',    isset($env['DB_PASS'])    ? $env['DB_PASS']    : '');
define('DB_NAME',    isset($env['DB_NAME'])    ? $env['DB_NAME']    : 'asisma_crm');
define('DB_CHARSET', isset($env['DB_CHARSET']) ? $env['DB_CHARSET'] : 'utf8mb4');

// Aplicación
define('APP_NAME',     isset($env['APP_NAME'])     ? $env['APP_NAME']     : 'ASISMA CRM');
define('APP_URL',      isset($env['APP_URL'])       ? $env['APP_URL']      : 'http://localhost/asisma_crm');
define('APP_TIMEZONE', isset($env['APP_TIMEZONE'])  ? $env['APP_TIMEZONE'] : 'Etc/GMT+4');
define('APP_DEBUG',    isset($env['APP_DEBUG'])     ? $env['APP_DEBUG']    : false);

// Evolution API (WhatsApp)
define('EVOLUTION_API_URL',   isset($env['EVOLUTION_API_URL'])   ? $env['EVOLUTION_API_URL']   : '');
define('EVOLUTION_API_TOKEN', isset($env['EVOLUTION_API_TOKEN']) ? $env['EVOLUTION_API_TOKEN'] : '');

// Directorios
define('ROOT_DIR',   dirname(__DIR__));
define('UPLOAD_DIR', ROOT_DIR . '/storage/uploads');
define('PDF_DIR',    ROOT_DIR . '/storage/pdf');
define('LOG_DIR',    ROOT_DIR . '/logs');

// Configuración de Errores e Inicialización
date_default_timezone_set(APP_TIMEZONE);
ini_set('display_errors', APP_DEBUG ? 1 : 0);
error_reporting(APP_DEBUG ? E_ALL : 0);
ini_set('error_log', LOG_DIR . '/error.log');

// Encoding UTF-8 global
ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
if (!headers_sent()) {
    header('Content-Type: text/html; charset=UTF-8');
}

// Sesión
define('SESSION_TIMEOUT', 43200); // 12 Horas
define('SESSION_NAME', 'asisma_crm_session');

// "Recordar dispositivo" (login persistente): cookie de 30 días
define('REMEMBER_COOKIE', 'asisma_crm_remember');
define('REMEMBER_DIAS', 30);

if (session_status() == PHP_SESSION_NONE) {
    ini_set('session.cookie_httponly', 1);
    ini_set('session.use_only_cookies', 1);
    session_name(SESSION_NAME);
    session_start();
}

// Cargar Constantes del Negocio y Base de Datos
require_once ROOT_DIR . '/config/constants.php';
require_once ROOT_DIR . '/config/database.php';
