<?php
session_start();
ob_start();
// --- CONFIGURACIÓN DE ERRORES PARA PRODUCCIÓN (¡DEBE QUEDAR ASÍ!) ---
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', __DIR__ . '/../logs/php_errors.log');
error_reporting(E_ALL);
// --- FIN DE CONFIGURACIÓN DE ERRORES PARA PRODUCCIÓN ---

// get_web_services.php (En el servidor del CRM: crm.tunegociocrm.com/db/)

// ***** CONFIGURACIÓN DE SEGURIDAD CORS *****
// Permite solicitudes SOLO desde tu dominio del sitio web.
// Es CRUCIAL que sea el dominio EXACTO: demoweb.tunegociocrm.com
$allowed_origin = 'https://demoweb.tunegociocrm.com'; // <--- ¡AQUÍ ESTÁ EL AJUSTE IMPORTANTE!
header('Access-Control-Allow-Origin: ' . $allowed_origin);
header('Access-Control-Allow-Methods: GET, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
header('Access-Control-Allow-Credentials: true');

// Manejar solicitud OPTIONS (preflight request para CORS)
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    // Para solicitudes OPTIONS, solo enviamos las cabeceras CORS y salimos.
    ob_end_clean(); // Limpiar el buffer por si acaso
    exit(0);
}

// Incluir el archivo de conexión a la base de datos de tu CRM
// Asumiendo que db_connection.php está en la misma carpeta 'db/' que get_web_services.php
require_once 'db_connection.php';

$response = ['success' => false, 'services' => [], 'message' => ''];

try {
    // Seleccionar solo los servicios que están marcados como 'show_on_web = 1'
    $stmt = $pdo->query("SELECT id, name, price, category, description, show_on_web FROM services WHERE show_on_web = 1 ORDER BY name ASC"); // No hay entrada de usuario, query es seguro
    $services = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // ✅ MEJORA: Asegurar que los tipos de datos sean correctos para el frontend
    $formatted_services = [];
    foreach ($services as $service) {
        $formatted_services[] = [
            'id' => (int)$service['id'],
            'name' => $service['name'],
            'price' => (float)$service['price'],
            'category' => $service['category'],
            'description' => $service['description'],
            'show_on_web' => (bool)$service['show_on_web']
        ];
    }

    $response['success'] = true;
    $response['services'] = $formatted_services;

} catch (PDOException $e) {
    error_log("Error PDO al cargar servicios web en get_web_services.php: " . $e->getMessage());
    $response['message'] = 'Error de base de datos al cargar servicios.';
} catch (Exception $e) {
    error_log("Error general al cargar servicios web en get_web_services.php: " . $e->getMessage());
    $response['message'] = 'Error interno del servidor.';
}

ob_end_clean();
header('Content-Type: application/json');
echo json_encode($response);
exit;