<?php
session_start();
// Verificar si el usuario está logueado y tiene los roles permitidos
if (!isset($_SESSION['usuario_id']) || 
    empty($_SESSION['usuario_id']) || 
    !in_array($_SESSION['rol'], ['admin', 'registrador_de_productos'])) {
    header('Location: ../login.php');
    exit;
}

require_once '../includes/config.php';
require_once '../includes/db.php';

$db = new Database();

if (isset($_GET['id']) && is_numeric($_GET['id'])) {
    $id = intval($_GET['id']);
    
    // Verificar si la sección existe
    $stmt = $db->prepare("SELECT id, nombre FROM secciones WHERE id = ?");
    $stmt->execute([$id]);
    $seccion = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($seccion) {
        // Verificar si hay productos asociados a esta sección
        $stmt = $db->prepare("SELECT COUNT(*) as total FROM productos WHERE id_seccion = ?");
        $stmt->execute([$id]);
        $result = $stmt->fetch(PDO::FETCH_ASSOC);

        if ($result['total'] > 0) {
            $mensaje = "No se puede eliminar la sección \"" . htmlspecialchars($seccion['nombre']) . "\" porque tiene " . $result['total'] . " producto(s) asociado(s)";
            $tipo = "warning";
        } else {
            try {
                // Intentar eliminar la sección
                $stmt = $db->prepare("DELETE FROM secciones WHERE id = ?");
                if ($stmt->execute([$id])) {
                    $mensaje = "La sección \"" . htmlspecialchars($seccion['nombre']) . "\" ha sido eliminada correctamente";
                    $tipo = "success";
                } else {
                    $mensaje = "Error al eliminar la sección \"" . htmlspecialchars($seccion['nombre']) . "\"";
                    $tipo = "danger";
                }
            } catch (PDOException $e) {
                $mensaje = "Error al eliminar la sección \"" . htmlspecialchars($seccion['nombre']) . "\": " . $e->getMessage();
                $tipo = "danger";
            }
        }
    } else {
        $mensaje = "La sección no existe";
        $tipo = "danger";
    }
} else {
    $mensaje = "ID de sección no válido";
    $tipo = "danger";
}

// Asegurarse de que el mensaje se envíe correctamente
$redirect_url = 'secciones.php?mensaje=' . urlencode($mensaje) . '&tipo=' . urlencode($tipo);
header('Location: ' . $redirect_url);
exit();
?>