<?php
/**
 * TechShop Perú - API: Preguntas y Respuestas de Producto (Q&A - Mejora 15)
 */
define('SECURE_ACCESS', true);
header('Content-Type: application/json; charset=utf-8');

require_once __DIR__ . '/../includes/config.php';
require_once __DIR__ . '/../includes/database.php';
require_once __DIR__ . '/../includes/functions.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['success' => false, 'message' => 'Método no permitido']);
    exit;
}

if (!csrf_verify()) {
    echo json_encode(['success' => false, 'message' => 'Token de seguridad inválido. Recarga la página e inténtalo de nuevo.']);
    exit;
}

if (!is_logged_in()) {
    echo json_encode(['success' => false, 'message' => 'Debes iniciar sesión para hacer una pregunta.']);
    exit;
}

$producto_id = (int)($_POST['producto_id'] ?? 0);
$pregunta = trim($_POST['pregunta'] ?? '');

if ($producto_id <= 0 || empty($pregunta) || mb_strlen($pregunta) < 10) {
    echo json_encode(['success' => false, 'message' => 'La pregunta debe tener al menos 10 caracteres.']);
    exit;
}

if (mb_strlen($pregunta) > 500) {
    echo json_encode(['success' => false, 'message' => 'La pregunta es demasiado larga (máx. 500 caracteres).']);
    exit;
}

try {
    $db = db();

    // Verificar que el producto existe antes de insertar (la FK lo exige).
    $stmtProd = $db->prepare('SELECT nombre FROM productos WHERE id = ? AND activo = 1');
    $stmtProd->execute([$producto_id]);
    if (!$stmtProd->fetch()) {
        echo json_encode(['success' => false, 'message' => 'Producto no encontrado.']);
        exit;
    }

    // Crear tabla Q&A si no existe
    $db->exec("CREATE TABLE IF NOT EXISTS producto_qa (
        id INT AUTO_INCREMENT PRIMARY KEY,
        producto_id INT NOT NULL,
        usuario_id INT NOT NULL,
        pregunta TEXT NOT NULL,
        respuesta TEXT DEFAULT NULL,
        respondido_por INT DEFAULT NULL,
        creado_en TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        respondido_en TIMESTAMP NULL,
        KEY idx_producto (producto_id),
        KEY idx_usuario (usuario_id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");

    $stmt = $db->prepare('INSERT INTO producto_qa (producto_id, usuario_id, pregunta) VALUES (?, ?, ?)');
    $stmt->execute([$producto_id, $_SESSION['usuario_id'], $pregunta]);

    echo json_encode([
        'success' => true,
        'message' => '✅ Tu pregunta fue enviada. El equipo de TechShop Perú responderá pronto.'
    ]);

} catch (Exception $e) {
    echo json_encode(['success' => false, 'message' => 'Error al enviar la pregunta.']);
}
