<?php
/**
 * SOINSA MIDAS — Configuración Principal
 * Reemplaza los placeholders [AQUI] con tus credenciales Hostinger
 */

// ═══════════════════════════════════════════════════════════
// DATABASE — MySQL Hostinger
// ═══════════════════════════════════════════════════════════
define('DB_HOST',   '[AQUI_HOST]');         // ej: localhost o db.hostinger.com
define('DB_NAME',   '[AQUI_DB_NAME]');      // ej: soinsa_midas
define('DB_USER',   '[AQUI_DB_USER]');      // ej: u998541368_midas
define('DB_PASS',   '[AQUI_DB_PASS]');      // tu password

// ═══════════════════════════════════════════════════════════
// API KEYS — Seguridad
// ═══════════════════════════════════════════════════════════
define('CLAUDE_KEY',    '[AQUI_CLAUDE_API_KEY]');   // sk-ant-...
define('OPENAI_KEY',    '[AQUI_OPENAI_KEY]');       // sk-... (opcional)
define('NOTION_TOKEN',  '[AQUI_NOTION_TOKEN]');     // secret_... (backup)

// ═══════════════════════════════════════════════════════════
// SITE CONFIG
// ═══════════════════════════════════════════════════════════
define('SITE_URL',  '[AQUI_DOMINIO]');    // ej: https://midas.tudominio.cl
define('UPLOAD_DIR', __DIR__ . '/../uploads/');
define('API_KEY_FRONTEND', 'soinsa_midas_front_2025');  // verificación básica

// ═══════════════════════════════════════════════════════════
// DATABASE CONNECTION
// ═══════════════════════════════════════════════════════════
function getDB() {
  static $pdo = null;
  if (!$pdo) {
    try {
      $pdo = new PDO(
        "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4",
        DB_USER,
        DB_PASS,
        [
          PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
          PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
          PDO::ATTR_EMULATE_PREPARES => false
        ]
      );
    } catch (PDOException $e) {
      http_response_code(500);
      die(json_encode(['error' => 'Database connection failed: ' . $e->getMessage()]));
    }
  }
  return $pdo;
}

// ═══════════════════════════════════════════════════════════
// HEADERS CORS — Allow frontend requests
// ═══════════════════════════════════════════════════════════
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization');

// Handle preflight
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
  http_response_code(200);
  exit;
}

// ═══════════════════════════════════════════════════════════
// HELPERS
// ═══════════════════════════════════════════════════════════

/**
 * Respuesta JSON estándar
 */
function jsonResponse($ok = true, $data = null, $error = null, $statusCode = 200) {
  http_response_code($statusCode);
  echo json_encode([
    'ok' => $ok,
    'data' => $data,
    'error' => $error
  ], JSON_UNESCAPED_UNICODE);
  exit;
}

/**
 * Log seguro (sin exponer keys)
 */
function logEvent($tipo, $detalle) {
  $logFile = __DIR__ . '/../logs/events.log';
  @mkdir(dirname($logFile), 0755, true);
  $timestamp = date('Y-m-d H:i:s');
  $line = "[$timestamp] $tipo: $detalle\n";
  @file_put_contents($logFile, $line, FILE_APPEND);
}

/**
 * Sanitizar entrada
 */
function sanitize($input) {
  if (is_array($input)) {
    return array_map('sanitize', $input);
  }
  return htmlspecialchars(stripslashes(trim($input)), ENT_QUOTES, 'UTF-8');
}

/**
 * Generar ID único
 */
function generateId($prefix = '') {
  return $prefix . uniqid() . bin2hex(random_bytes(4));
}

// ═══════════════════════════════════════════════════════════
// VERIFICACIÓN DE CREDENCIALES LISTAS
// ═══════════════════════════════════════════════════════════
$configOk = !strpos(DB_HOST, '[AQUI') &&
            !strpos(CLAUDE_KEY, '[AQUI');

if (!$configOk && php_sapi_name() !== 'cli') {
  // No bloquear completamente, pero loguear
  logEvent('CONFIG', 'Placeholders aún no reemplazados en config.php');
}

?>
