yazrkisvs3vvvsv33svrhetrjsvyvsvvyjsvsvs
tavsuysvssvvjvvyjyjkvsvqd
qfogsvvsvsegjdgdfgdskhgdksvqsvshdqsd
<?php
// ─── DIMARK CRM — Configuración ────────────────────────────────

define('DB_HOST', 'localhost');
define('DB_NAME', 'dimark93_aviasistente');
define('DB_USER', 'dimark93_aviasistente');
define('DB_PASS', '%Un2Icow??X^');
define('DB_CHARSET', 'utf8mb4');

define('APP_NAME', 'DIMARK CRM');
define('APP_URL',  'https://dimark.co/crm');
define('APP_VERSION', '1.0.0');

// Sesión
define('SESSION_NAME', 'dimark_crm_session');
define('SESSION_LIFETIME', 28800); // 8 horas

// Timezone
date_default_timezone_set('America/Bogota');

// ─── Conexión PDO ───────────────────────────────────────────────
function getDB(): PDO {
    static $pdo = null;
    if ($pdo === null) {
        $dsn = "mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET;
        $options = [
            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES   => false,
        ];
        try {
            $pdo = new PDO($dsn, DB_USER, DB_PASS, $options);
        } catch (PDOException $e) {
            die(json_encode(['error' => 'Error de conexión a la base de datos.']));
        }
    }
    return $pdo;
}

// ─── Helper: respuesta JSON ─────────────────────────────────────
function jsonResponse(array $data, int $code = 200): void {
    http_response_code($code);
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode($data, JSON_UNESCAPED_UNICODE);
    exit;
}

// ─── Helper: sanitizar ─────────────────────────────────────────
function clean(string $str): string {
    return htmlspecialchars(trim($str), ENT_QUOTES, 'UTF-8');
}
