<?php
/**
 * TechShop Perú - API Registro de Alerta de Reposición de Stock
 */

header('Content-Type: application/json; charset=utf-8');

define('SECURE_ACCESS', true);
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;
}

$producto_id = (int)($_POST['producto_id'] ?? 0);
$email = sanitize($_POST['email'] ?? '');

if ($producto_id <= 0 || empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo json_encode(['success' => false, 'message' => 'Ingresa un correo electrónico válido.']);
    exit;
}

try {
    $db = db();

    // Asegurar existencia de la tabla
    $db->exec("CREATE TABLE IF NOT EXISTS suscripciones_stock (
        id INT AUTO_INCREMENT PRIMARY KEY,
        producto_id INT NOT NULL,
        email VARCHAR(150) NOT NULL,
        fecha_registro DATETIME DEFAULT CURRENT_TIMESTAMP,
        notificado TINYINT(1) DEFAULT 0,
        KEY (producto_id),
        KEY (email)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");

    // Verificar si el producto existe
    $stmt = $db->prepare('SELECT nombre FROM productos WHERE id = ?');
    $stmt->execute([$producto_id]);
    $prod = $stmt->fetch();

    if (!$prod) {
        echo json_encode(['success' => false, 'message' => 'Producto no encontrado.']);
        exit;
    }

    // Registrar solicitud de stock
    $stmtIns = $db->prepare('
        INSERT INTO suscripciones_stock (producto_id, email) 
        VALUES (?, ?)
    ');
    $stmtIns->execute([$producto_id, $email]);

    echo json_encode([
        'success' => true,
        'message' => '¡Registrado! Te notificaremos a ' . e($email) . ' cuando tengamos stock disponible.'
    ]);

} catch (PDOException $e) {
    echo json_encode(['success' => false, 'message' => 'Error al registrar la solicitud: ' . $e->getMessage()]);
}
