<?php
/**
 * Configuración del Sistema de Telemetría Industrial
 * Sistema de monitoreo remoto para buques
 * 
 * DETECCIÓN AUTOMÁTICA: Local (XAMPP) o Producción
 */

// Detectar si estamos en localhost (XAMPP) o en producción
// Si se ejecuta desde CLI, considerar como local
$isLocal = (
    php_sapi_name() === 'cli' ||
    (isset($_SERVER['HTTP_HOST']) && (
        $_SERVER['HTTP_HOST'] === 'localhost' ||
        $_SERVER['HTTP_HOST'] === '127.0.0.1' ||
        strpos($_SERVER['HTTP_HOST'], 'localhost:') === 0 ||
        strpos($_SERVER['HTTP_HOST'], '127.0.0.1:') === 0
    ))
);

if ($isLocal) {
    // ============================================
    // CONFIGURACIÓN PARA XAMPP (LOCAL)
    // ============================================
    define('DB_HOST', 'localhost');
    define('DB_NAME', 'buque_telemetria');
    define('DB_USER', 'root');           // Usuario por defecto XAMPP
    define('DB_PASS', '');               // Sin contraseña por defecto XAMPP
    define('DB_CHARSET', 'utf8mb4');

    // API KEY para desarrollo local
    define('API_KEY', 'BUQUE2024_SECRET_KEY_XYZ789');

    // Mostrar errores en desarrollo
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    ini_set('log_errors', 1);

} else {
    // ============================================
    // CONFIGURACIÓN PARA PRODUCCIÓN (Cloudserver)
    // Nuevo VPS con cPanel: 186.64.121.188
    // ============================================

    define('DB_HOST', 'localhost');
    define('DB_NAME', 'tecnotrack_buque_pruebas');
    define('DB_USER', 'tecnotrack_buque_user');
    define('DB_PASS', '8t}Vf.&j6T49');
    define('DB_CHARSET', 'utf8mb4');

    define('API_KEY', 'BUQUE2024_SECRET_KEY_XYZ789');

    error_reporting(E_ALL);
    ini_set('display_errors', 0);
    ini_set('log_errors', 1);
}

// Zona horaria
date_default_timezone_set('America/Argentina/Buenos_Aires');

/**
 * Conexión a la base de datos
 */
function getDBConnection()
{
    try {
        $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,
        ];

        $pdo = new PDO($dsn, DB_USER, DB_PASS, $options);

        // Sincronizar zona horaria de MySQL con PHP
        $pdo->exec("SET time_zone = '-03:00'"); // America/Argentina/Buenos_Aires es UTC-3

        return $pdo;
    } catch (PDOException $e) {
        error_log("Error de conexión a BD: " . $e->getMessage());
        return null;
    }
}

/**
 * Respuesta JSON estandarizada
 */
function jsonResponse($success, $message, $data = null, $httpCode = 200)
{
    http_response_code($httpCode);
    header('Content-Type: application/json; charset=utf-8');

    $response = [
        'success' => $success,
        'message' => $message,
        'timestamp' => date('Y-m-d H:i:s')
    ];

    if ($data !== null) {
        $response['data'] = $data;
    }

    echo json_encode($response, JSON_UNESCAPED_UNICODE);
    exit;
}

