<?php
require_once __DIR__ . "/../../../config/db.php";

/* ==========================
   1. Validation des données
   ========================== */
$user = isset($_POST['utilisateur_id']) ? (int)$_POST['utilisateur_id'] : 0;
$caisses = $_POST['caisses'] ?? [];
$pin = isset($_POST['pin']) ? trim($_POST['pin']) : '';

if ($user <= 0) {
    die("Utilisateur invalide");
}

try {
    $conn->beginTransaction();

    //  Supprimer les anciennes affectations
    $stmtDelete = $conn->prepare("DELETE FROM utilisateurs_caisses WHERE utilisateur_id = ?");
    $stmtDelete->execute([$user]);

    //  Ajouter les nouvelles affectations
    if (!empty($caisses)) {
        $stmtInsert = $conn->prepare("
            INSERT INTO utilisateurs_caisses (utilisateur_id, caisse_id)
            VALUES (?, ?)
        ");
        foreach ($caisses as $caisse_id) {
            $stmtInsert->execute([$user, (int)$caisse_id]);
        }
    }

    //  Mettre à jour le PIN POS si fourni
    if ($pin !== '') {
        $hashedPin = password_hash($pin, PASSWORD_DEFAULT);
        $stmtPin = $conn->prepare("UPDATE utilisateurs SET pos_pin = ? WHERE id = ?");
        $stmtPin->execute([$hashedPin, $user]);
    }

    $conn->commit();

    header("Location: /utilisateurs_caisses.php?success=1");
    exit;

} catch (Exception $e) {
    $conn->rollBack();
    die("Erreur lors de l'affectation : " . $e->getMessage());
}
