Package fr.univ_eiffel.legotools.factory
Class StockManager
java.lang.Object
fr.univ_eiffel.legotools.factory.StockManager
Gestionnaire de persistance (DAO) pour le stock de briques.
Cette classe fait le lien entre l'application Java et la base de données MySQL. Elle est responsable de :
- Suivre l'état du stock en temps réel (Entrées - Sorties).
- Enregistrer les commandes passées à l'usine.
- Stocker les preuves d'authenticité (certificats) des briques reçues.
-
Constructor Summary
ConstructorsConstructorDescriptionInitialise la connexion en chargeant les identifiants depuis le fichier .env. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddBricks(List<FactoryBrick> bricks) Enregistre un lot de nouvelles briques reçues de l'usine.Récupère la liste de tous les types de briques référencés.Récupère le mapping complet ID <-> Référence pour tous les items.Interroge une Vue SQL pour identifier les produits en rupture ou stock critique.getPopularItems(int limit) Analyse les commandes passées pour déterminer les tendances d'achat.Calcule le stock courant pour chaque référence.voidrecordFactoryOrder(String quoteId, float totalPrice, Map<String, Integer> items) Archive une commande fournisseur (achat usine) en base de données.voidAffiche l'état actuel du stock dans la console.voidupdateItemPrice(int idItem, double price) Met à jour le prix unitaire d'un item.
-
Constructor Details
-
StockManager
public StockManager()Initialise la connexion en chargeant les identifiants depuis le fichier .env.
-
-
Method Details
-
getStockCounts
Calcule le stock courant pour chaque référence.- Returns:
- Une Map associant "Reference" (ex: "2-2/red") à la quantité disponible.
-
getLowStockItems
Interroge une Vue SQL pour identifier les produits en rupture ou stock critique.- Returns:
- Une map associant la référence de la brique à son niveau de stock actuel.
-
addBricks
Enregistre un lot de nouvelles briques reçues de l'usine.Soit toutes les briques sont ajoutées (Stock + Métadonnées), soit aucune (Rollback). Cela garantit qu'on ne perd jamais la traçabilité d'une brique (Serial) si le stock plante.
- Parameters:
bricks- La liste des objets briques validés.
-
getPopularItems
Analyse les commandes passées pour déterminer les tendances d'achat.- Parameters:
limit- Le nombre maximum d'articles à retourner.- Returns:
- Une Map associant l'article (Forme/Couleur) au volume total des ventes.
-
showStock
public void showStock()Affiche l'état actuel du stock dans la console. -
recordFactoryOrder
Archive une commande fournisseur (achat usine) en base de données.- Parameters:
quoteId- Identifiant unique du devis.totalPrice- Prix total de la commande.items- Map des articles commandés (Référence -> Quantité).
-
getAllBrickTypes
Récupère la liste de tous les types de briques référencés.- Returns:
- Liste de chaînes formatées "Forme/Couleur".
-
getAllItemsRef
Récupère le mapping complet ID <-> Référence pour tous les items.- Returns:
- Map liant l'ID BDD (Integer) à la référence API (String).
-
updateItemPrice
public void updateItemPrice(int idItem, double price) Met à jour le prix unitaire d'un item.- Parameters:
idItem- L'ID de l'item en base.price- Le nouveau prix.
-