<?php

require_once dirname(__DIR__, 2) . '/lib/Helper/EncodingHelper.php';

$database = array(
    'host' => getenv('DB_HOST') ?: 'localhost',
    'user' => getenv('DB_USER') ?: 'palltecc_ADMIN',
    'pass' => getenv('DB_PASS') ?: 'Admin2025*',
    'name' => getenv('DB_NAME') ?: 'palltecc_BDMESA',
    'port' => (int) (getenv('DB_PORT') ?: 3306),
);

$localConfigFile = __DIR__ . '/config.local.php';
if (is_file($localConfigFile)) {
    $localDatabase = require $localConfigFile;
    if (!is_array($localDatabase)) {
        throw new RuntimeException('config.local.php debe retornar un array.');
    }
    $database = array_replace($database, $localDatabase);
}

define('DB_HOST', $database['host']);
define('DB_USER', $database['user']);
define('DB_PASS', $database['pass']);
define('DB_NAME', $database['name']);
define('DB_PORT', (int) $database['port']);

// PHP 8.1+ activa excepciones mysqli por defecto. El codigo existente
// comprueba resultados booleanos, por lo que se conserva ese contrato.
mysqli_report(MYSQLI_REPORT_OFF);
$con = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);

if (!$con) {
    error_log('Database connection failed: ' . mysqli_connect_error());
    http_response_code(500);
    die('<h2 style="text-align:center">No fue posible conectarse a la base de datos.</h2>');
}

mysqli_set_charset($con, 'utf8mb4');
date_default_timezone_set(getenv('APP_TIMEZONE') ?: 'America/Lima');

if (!headers_sent()) {
    header('Content-Type: text/html; charset=utf-8');
}
