<?php
/**
 * ICYLAB OS - Eliminar Producto
 */
require_once '../../core/config.php';
require_once '../../core/session.php';
require_once '../../core/database.php';
require_once '../../services/crm/FactoService.php';
require_once '../../core/permissions.php'; // Agrega esto en los require

require_login();
require_permission('module.products'); // Agrega este candado

if ($_SERVER['REQUEST_METHOD'] !== 'POST') die('Método no permitido.');

$pdo = db();
$id = (int)($_POST['id'] ?? 0);

if ($id <= 0) die('ID inválido.');

try {
    // 1. Obtener datos antes de eliminar
    $stmt = $pdo->prepare("SELECT facto_id FROM products WHERE id = ?");
    $stmt->execute([$id]);
    $factoId = $stmt->fetchColumn();

    // 2. Eliminar de FACTO (Si está vinculado)
    if ($factoId) {
        try {
            $facto = new FactoService();
            $facto->deleteProduct($factoId);
        } catch (Exception $e) {
            // Si falla FACTO (ej: producto ya facturado), lo eliminamos localmente de todas formas 
            // o lo desactivamos. Por ahora procedemos a eliminar local.
        }
    }

    // 3. Eliminar Maestro Local
    $stmtDel = $pdo->prepare("DELETE FROM products WHERE id = ?");
    $stmtDel->execute([$id]);

    header('Location: /modules/products/index.php');
    exit;

} catch (Throwable $e) {
    die("Error crítico al eliminar: " . $e->getMessage());
}