<?php
session_start();
if (!isset($_SESSION["user_id"])) {
    header("Location: auth/login.php");
    exit();
}

require_once 'db/config.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $product_id = isset($_POST['id']) ? (int)$_POST['id'] : 0;
    $nombre = trim($_POST['nombre']);
    $descripcion = trim($_POST['descripcion']);
    $costo = filter_input(INPUT_POST, 'costo', FILTER_VALIDATE_FLOAT);
    $precio_venta = filter_input(INPUT_POST, 'precio_venta', FILTER_VALIDATE_FLOAT);

    if ($product_id > 0 && !empty($nombre) && $costo !== false && $precio_venta !== false) {
        try {
            $pdo = db();
            $sql = "UPDATE productos SET nombre = ?, descripcion = ?, costo = ?, precio_venta = ? WHERE id = ?";
            $stmt = $pdo->prepare($sql);
            
            if ($stmt->execute([$nombre, $descripcion, $costo, $precio_venta, $product_id])) {
                $_SESSION['success_message'] = "Producto actualizado correctamente.";
            } else {
                $_SESSION['error_message'] = "Error al actualizar el producto.";
            }
        } catch (PDOException $e) {
            $_SESSION['error_message'] = "Error de base de datos: " . $e->getMessage();
        }
    } else {
        $_SESSION['error_message'] = "Por favor, complete todos los campos requeridos correctamente.";
    }
} else {
    $_SESSION['error_message'] = "Método de solicitud no válido.";
}

header("Location: productos.php");
exit();
?>