Class StockManager

java.lang.Object
fr.univ_eiffel.legotools.factory.StockManager

public class StockManager extends Object
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 Details

    • StockManager

      public StockManager()
      Initialise la connexion en chargeant les identifiants depuis le fichier .env.
  • Method Details

    • getStockCounts

      public Map<String,Integer> getStockCounts()
      Calcule le stock courant pour chaque référence.
      Returns:
      Une Map associant "Reference" (ex: "2-2/red") à la quantité disponible.
    • getLowStockItems

      public Map<String,Integer> 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

      public void addBricks(List<FactoryBrick> bricks)
      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

      public Map<String,Integer> getPopularItems(int limit)
      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

      public void recordFactoryOrder(String quoteId, float totalPrice, Map<String,Integer> items)
      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

      public List<String> 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

      public Map<Integer,String> 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.