<?php
// ✅ Mostrar errores
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// ✅ Encabezados CORS y JSON
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Access-Control-Max-Age: 86400");
header("Content-Type: application/json");

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

// ✅ Leer JSON
$input = json_decode(file_get_contents('php://input'), true);
$storeId = $input['store_id'] ?? null;
$tipo = $input['tipo'] ?? null; // meta, qr, manual o desactivar
$numeroManual = $input['numero_manual'] ?? '';
$activo = isset($input['activo']) ? (int)$input['activo'] : 0;

// ✅ Validar store_id
if (!$storeId) {
    echo json_encode(['success' => false, 'message' => '❌ Falta store_id']);
    exit;
}

require_once(__DIR__ . '/../config.php');

// ✅ Calcular endpoint según tipo
$endpoint = '';

if ($tipo === 'qr') {
    $endpoint = "http://localhost:3000/tienda/{$storeId}/send_message";

} elseif ($tipo === 'meta') {
    $endpoint = "http://localhost:3000/meta/{$storeId}/send_message";

} elseif ($tipo === 'manual') {
    $endpoint = ''; // Manual no necesita endpoint
    if (!$numeroManual) {
        echo json_encode(['success' => false, 'message' => '❌ El número manual es obligatorio']);
        exit;
    }

} elseif ($tipo === 'desactivar') {
    // 🔹 Guardar como manual pero inactivo, conservando el número del input
    $tipo = 'manual';
    $endpoint = '';
    $activo = 0;
    // $numeroManual viene del frontend y NO se borra

} else {
    echo json_encode(['success' => false, 'message' => '❌ Tipo no válido']);
    exit;
}

// ✅ Guardar o actualizar en base de datos
$stmt = $mysqli->prepare("INSERT INTO numero_setup (store_id, tipo, numero_manual, endpoint, activo, fecha_actualizacion)
VALUES (?, ?, ?, ?, ?, NOW())
ON DUPLICATE KEY UPDATE tipo = VALUES(tipo), numero_manual = VALUES(numero_manual), endpoint = VALUES(endpoint), activo = VALUES(activo), fecha_actualizacion = NOW()");
$stmt->bind_param("ssssi", $storeId, $tipo, $numeroManual, $endpoint, $activo);
$stmt->execute();

if ($stmt->affected_rows > 0) {
    echo json_encode(['success' => true, 'message' => '✅ Configuración guardada', 'endpoint' => $endpoint]);
} else {
    echo json_encode(['success' => false, 'message' => '⚠️ No se guardaron cambios']);
}

$stmt->close();
$mysqli->close();
