<?php
// config/db.php

/**
 * LOGICA DE SESIÓN SEGURA
 * Si ya hay una sesión iniciada por otro archivo, la ignoramos.
 * Si no hay ninguna, la iniciamos.
 */
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// 1. DETECCIÓN AUTOMÁTICA DE URL BASE
if ($_SERVER['HTTP_HOST'] == 'localhost' || $_SERVER['SERVER_ADDR'] == '127.0.0.1') {
    // Configuración para tu PC (XAMPP/Laragon)
    if (!defined('BASE_URL')) define('BASE_URL', 'http://localhost/vvault/');
    $host = 'localhost';
    $db   = 'vvault_db'; // Asegúrate de que este es el nombre exacto de tu DB
    $user = 'root';
    $pass = '';
} else {
    // Configuración para el Servidor Real
    if (!defined('BASE_URL')) define('BASE_URL', 'https://tusitioweb.com/'); 
    $host = 'localhost'; 
    $db   = 'nombre_de_tu_db_en_hosting';
    $user = 'usuario_de_tu_db_en_hosting';
    $pass = 'password_de_tu_db_en_hosting';
}

try {
    // Conexión PDO
    $pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 2. RASTREO DE ACTIVIDAD (Para el punto verde "Online")
    if (isset($_SESSION['user_id'])) {
        $update_activity = $pdo->prepare("UPDATE users SET last_seen = NOW() WHERE id = ?");
        $update_activity->execute([$_SESSION['user_id']]);
    }

    // 3. CARGAR AJUSTES DEL SITIO (De la tabla site_settings)
    // Usamos FETCH_KEY_PAIR para convertir la tabla en un array [llave => valor]
    $stmt = $pdo->query("SELECT setting_key, setting_value FROM site_settings");
    $site_settings = $stmt->fetchAll(PDO::FETCH_KEY_PAIR);

    // 4. DEFINIR CONSTANTES GLOBALES
    // Esto evita que el header u otros archivos fallen si no encuentran el valor
    if (!defined('SITE_NAME')) define('SITE_NAME', $site_settings['site_name'] ?? 'VVault');
    if (!defined('PRIMARY_COLOR')) define('PRIMARY_COLOR', $site_settings['primary_color'] ?? '#00ff88');
    if (!defined('SECONDARY_COLOR')) define('SECONDARY_COLOR', $site_settings['background_color'] ?? '#090b0f');

} catch (PDOException $e) {
    // Si falla la conexión, mostramos un error limpio
    die("Error crítico de conexión: " . $e->getMessage());
}
?>