import 'package:em2rp/models/equipment_model.dart'; /// Helpers pour la gestion et l'affichage des équipements class EquipmentHelpers { /// Détermine si un équipement devrait avoir une quantité par défaut /// Retourne true pour câbles, consommables et structures static bool shouldBeQuantifiableByDefault(EquipmentCategory category) { return category == EquipmentCategory.cable || category == EquipmentCategory.consumable || category == EquipmentCategory.structure; } /// Calcule la quantité disponible d'un équipement /// Prend en compte la quantité totale et la quantité déjà assignée static int calculateAvailableQuantity( EquipmentModel equipment, int assignedQuantity, ) { if (!equipment.hasQuantity) return 0; final total = equipment.availableQuantity ?? equipment.totalQuantity ?? 0; return (total - assignedQuantity).clamp(0, total); } /// Vérifie si un équipement est en stock faible /// (quantité disponible en dessous du seuil critique) static bool isLowStock(EquipmentModel equipment) { if (!equipment.hasQuantity) return false; if (equipment.criticalThreshold == null) return false; final available = equipment.availableQuantity ?? 0; return available <= equipment.criticalThreshold!; } }