<?php
session_start();
require_once __DIR__ . "/../../config/db.php";

try {
    if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
        throw new Exception("Méthode non autorisée");
    }

    $produit_id = (int)($_POST['produit_id'] ?? 0);
    $articles   = $_POST['article_id'] ?? [];
    $quantites  = $_POST['quantite'] ?? [];

    if ($produit_id <= 0 || empty($articles)) {
        throw new Exception("Données invalides");
    }

    $conn->beginTransaction();

    // Vérifier produit fini
    $check = $conn->prepare("SELECT id FROM produits WHERE id = ?");
    $check->execute([$produit_id]);
    if (!$check->fetch()) {
        throw new Exception("Produit fini invalide");
    }

    // Créer fiche
    $stmt = $conn->prepare("
        INSERT INTO fiches_techniques (produit_id, actif)
        VALUES (?, 1)
    ");
    $stmt->execute([$produit_id]);
    $fiche_id = $conn->lastInsertId();

    // Lignes
    foreach ($articles as $i => $article_id) {
        $article_id = (int)$article_id;
        $qte = (float)($quantites[$i] ?? 0);

        if ($article_id <= 0 || $qte <= 0) continue;

        $conn->prepare("
            INSERT INTO fiche_lignes (fiche_id, article_id, quantite)
            VALUES (?, ?, ?)
        ")->execute([$fiche_id, $article_id, $qte]);
    }

    $conn->commit();

} catch (Exception $e) {
    if ($conn->inTransaction()) $conn->rollBack();
    die("❌ Erreur fiche technique : " . $e->getMessage());
}

header("Location: /eagle_client_istanbulcups/index.php?page=fiche-technique");
exit;
