<?php
require_once __DIR__ . '/../config/database.php';
require_once __DIR__ . '/../includes/helpers.php';

require_post();
$data = json_input();
require_fields($data, ['promocion_id', 'producto_id']);

$pdo = getConnection();

try {
    $promocion_id = (int)$data['promocion_id'];
    $producto_id = (int)$data['producto_id'];
    $presentacion_id = isset($data['presentacion_id']) ? (int)$data['presentacion_id'] : null;
    $descuento_porcentaje = isset($data['descuento_porcentaje']) ? (float)$data['descuento_porcentaje'] : null;
    $descuento_monto_fijo = isset($data['descuento_monto_fijo']) ? (float)$data['descuento_monto_fijo'] : null;
    $precio_promocional = isset($data['precio_promocional']) ? (float)$data['precio_promocional'] : null;

    // Verify promocion exists
    $check = $pdo->prepare("SELECT id, tipo_descuento FROM promociones WHERE id = ?");
    $check->execute([$promocion_id]);
    if (!$check->fetch()) { json_error("Promocion no encontrada"); return; }

    $stmt = $pdo->prepare("INSERT INTO promocion_productos (promocion_id, producto_id, presentacion_id, descuento_porcentaje, descuento_monto_fijo, precio_promocional) VALUES (?, ?, ?, ?, ?, ?)");
    $stmt->execute([$promocion_id, $producto_id, $presentacion_id, $descuento_porcentaje, $descuento_monto_fijo, $precio_promocional]);

    json_success(['id' => (int)$pdo->lastInsertId()], 'Producto agregado a la promocion');
} catch (Exception $e) {
    json_error("Error: " . $e->getMessage());
}
