<?php
require_once 'db_conexion.php';

$nombre      = trim($_POST['nombre'] ?? '');
$telefono    = trim($_POST['telefono'] ?? '');
$direccion   = trim($_POST['direccion'] ?? '');
$notas       = trim($_POST['notas'] ?? '');
$metodo_pago = trim($_POST['metodo_pago'] ?? '');
$cart        = json_decode($_POST['cart_data'] ?? '[]', true);

if (!in_array($metodo_pago, ['efectivo', 'yape_plin'])) {
    header("Location: pedido.php?error=pago");
    exit;
}

$total = array_sum(array_map(fn($i) => $i['precio'] * $i['cantidad'], $cart));

// 1. Insertar pedido principal
$stmt = $pdo->prepare("
    INSERT INTO pedidos (cliente_nombre, cliente_telefono, total, metodo_pago, estado, fecha_pedido)
    VALUES (:nombre, :telefono, :total, :metodo_pago, 'Pendiente', NOW())
");
$stmt->execute([
    ':nombre'      => $nombre,
    ':telefono'    => $telefono,
    ':total'       => $total,
    ':metodo_pago' => $metodo_pago
]);

// 2. Obtener el ID del pedido recién insertado
$pedido_id = $pdo->lastInsertId();

// 3. Insertar cada item del carrito
$stmtItem = $pdo->prepare("
    INSERT INTO pedido_items (pedido_id, producto_nombre, precio, cantidad, subtotal)
    VALUES (:pedido_id, :nombre, :precio, :cantidad, :subtotal)
");

foreach ($cart as $item) {
    $stmtItem->execute([
        ':pedido_id' => $pedido_id,
        ':nombre'    => $item['nombre'],
        ':precio'    => $item['precio'],
        ':cantidad'  => $item['cantidad'],
        ':subtotal'  => $item['precio'] * $item['cantidad']
    ]);
}

header("Location: menu.php?pedido=ok");
exit;