<?php
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

function adicionarAoCarrinho($produto) {
    $id = $produto['id'];
    if (!isset($_SESSION['carrinho'][$id])) {
        $_SESSION['carrinho'][$id] = $produto;
        $_SESSION['carrinho'][$id]['quantidade'] = 1;
    } else {
        $_SESSION['carrinho'][$id]['quantidade']++;
    }
}

function removerDoCarrinho($id) {
    if (isset($_SESSION['carrinho'][$id])) {
        unset($_SESSION['carrinho'][$id]);
    }
}

function limparCarrinho() {
    unset($_SESSION['carrinho']);
}

function listarCarrinho() {
    return isset($_SESSION['carrinho']) ? $_SESSION['carrinho'] : [];
}

function conectar() {
    $host = 'localhost';
    $db   = 'delivery';
    $user = 'root';
    $pass = '';
    $charset = 'utf8mb4';
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    $options = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    try {
        return new PDO($dsn, $user, $pass, $options);
    } catch (\PDOException $e) {
        die("Erro ao conectar ao banco: " . $e->getMessage());
    }
}

function salvarPedido($cliente, $data, $itens, $total, $status, $endereco, $forma_pagamento) {
    $pdo = conectar();

    // Opcional: verificar se a coluna cliente existe
    $colunas = $pdo->query("SHOW COLUMNS FROM pedidos")->fetchAll(PDO::FETCH_COLUMN);
    if (!in_array('cliente', $colunas)) {
        $pdo->exec("ALTER TABLE pedidos ADD COLUMN cliente VARCHAR(255) NOT NULL");
    }

    $sql = "INSERT INTO pedidos (cliente, endereco, data, itens, total, forma_pagamento, status)
            VALUES (?, ?, ?, ?, ?, ?, ?)";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$cliente, $endereco, $data, $itens, $total, $forma_pagamento, $status]);
    return $pdo->lastInsertId();
}

function listarPedidos() {
    $pdo = conectar();
    $sql = "SELECT * FROM pedidos ORDER BY id DESC";
    return $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
}
?>
