<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");

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

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

// Obtener datos enviados
$input = json_decode(file_get_contents("php://input"), true);
$slug = $input['slug_tienda'] ?? null;
$nombre = $input['nombre'] ?? null;
$contenido = $input['contenido'] ?? null;
$ejecutor = $input['ejecutor'] ?? 'qr'; // Valor por defecto 'qr' si no se envía

if (!$slug || !$nombre || !$contenido) {
    echo json_encode(['success' => false, 'message' => 'Faltan parámetros']);
    exit;
}

// Verificar si ya existe un flujo con el mismo nombre y slug_tienda
$stmt = $mysqli->prepare("SELECT id FROM flujos_chatbot WHERE slug_tienda = ? AND nombre_flujo = ?");
$stmt->bind_param("ss", $slug, $nombre);
$stmt->execute();
$result = $stmt->get_result();

$jsonContenido = json_encode($contenido);

if ($row = $result->fetch_assoc()) {
    // Ya existe → Actualizar
    $id = $row['id'];
    $stmt->close();

    $update = $mysqli->prepare("UPDATE flujos_chatbot SET contenido = ?, ejecutor = ?, fecha_actualizacion = NOW() WHERE id = ?");
    $update->bind_param("ssi", $jsonContenido, $ejecutor, $id);
    $success = $update->execute();
    $update->close();

    if ($success) {
        echo json_encode(['success' => true, 'message' => '✅ Flujo actualizado correctamente']);
    } else {
        echo json_encode(['success' => false, 'message' => '❌ Error al actualizar']);
    }
} else {
    // No existe → Insertar nuevo
    $stmt->close();

    $insert = $mysqli->prepare("INSERT INTO flujos_chatbot (slug_tienda, nombre_flujo, contenido, ejecutor, fecha_creacion) VALUES (?, ?, ?, ?, NOW())");
    $insert->bind_param("ssss", $slug, $nombre, $jsonContenido, $ejecutor);
    $success = $insert->execute();
    $insert->close();

    if ($success) {
        echo json_encode(['success' => true, 'message' => '✅ Flujo guardado correctamente']);
    } else {
        echo json_encode(['success' => false, 'message' => '❌ Error al guardar']);
    }
}
?>
