En tant qu’organisateur du festival, il faut gérer la quantité nécessaire d’oxygène pour les festivaliers et tenir un rapport afin de savoir la quantité de bonbonnes nécessaires et la quantité de ressources utilisées.

Il existe 2 manières d’obtenir de l’oxygène:

  • Acheter des bonbonnes d’oxygène déjà prêtes pour l’utilisation
    • Coût unitaire pour une bonbonne d’oxygène: 5000$
    • La qualité d’oxygène de ces bonbonnes est de catégorie E.
  • Fabriquer l’oxygène: 2 méthodes de fabrication:
    • À partir de l’électrolyse
      • Une production nécessite 8 litres d’eau et donne 3 bonbonnes d’oxygène
      • Coût: 600$/ litre d’eau
      • La qualité d’oxygène de ces bonbonnes est de catégorie B
      • Seule des productions entières peuvent être faites (3 bonbonnes, pas de demi production)
      • Temps de fabrication: 10 jours
      • Entreposer après la fabrication
    • À partir de bougies
      • Une production nécessite 15 bougies et donne 5 bonbonnes d’oxygène
      • Coût: 650$/bougie
      • La qualité d’oxygène de ces bonbonnes est de catégorie A
      • Seule des productions entières peuvent être faites (5 bonbonnes, pas de demi production)
      • Temps de fabrication: 20 jours
      • Entreposer après la fabrication
  Supernova Supergiant Nebula
Besoin quotidien d’oxygène 5 bonbonnes 3 bonbonnes 3 bonbonnes
Qualité minimale requise Catégorie E Catégorie B Catégorie A

Dès l’achat de passes, les bonbonnes d’oxygène sont achetées et la fabrication débute.

Note: La qualité de l’oxygène de grade E est supérieure à celle de grade B et A (E > B > A). Dans le cadre du projet, tenez compte qu’il n’y a que ces 3 grades. Pour en savoir plus sur la gradation des bonbonnes d’oxygène: http://www-personal.umich.edu/~lpt/oxlabel.htm

Conditions de succès

Condition Description
COS 1 Le grade minimal d’oxygène requis est utilisé (sauf si le délai ne le permet pas).
COS 2 Toutes les bonbonnes d’oxygène nécessaires doivent être prêtes dès le début du festival (17 juillet 2050).
COS 3 L’excédent de bonbonnes produites doit être utilisé avant de produire d’autres bonbonnes.
COS 4 Pouvoir connaître l’inventaire de bonbonnes d’oxygène de chaque catégorie.
COS 5 Pouvoir connaître l’historique de la quantité d’eau utilisée par jour.
COS 6 Pouvoir connaître l’historique de la quantité de chandelles utilisée par jour.
COS 7 L’historique doit être en ordre chronologique de date.

Note 1: L’historique affiche les quantités utilisées/fabriquées/achetées pour une date précise donc ne pas faire la sommation de toutes les quantités jusqu’à cette date. Seul l’inventaire est cumulatif.

Note 2: Il n’y a pas d’ordre nécessaire dans l’inventaire concernant les grades d’oxygène.

Exemple 1

Scénario: Celui où le grade minimal d'oxygène requis est utilisé
  Étant donné 2 single passes Supergiant
  Quand la transaction est passée le 2050-07-01
  Alors 6 bonbonnes d'oxygène sont nécessaires pour répondre aux besoins
  Et le 2050-07-01, 16 litres d'eau sont nécessaires à la fabrication d'oxygène 
  Et 6 bonbonnes de catégorie B sont fabriquées 
  Et ces bonbonnes sont entreposées le 2050-07-11

Exemple 2

Scénario: Celui où la date de transaction ne permet pas un délai de production qui utilise le grade minimal requis
  Étant donné 2 single passes Supergiant
  Quand la transaction est passée le 2050-07-15
  Alors 6 bonbonnes d'oxygène sont nécessaires pour répondre aux besoins
  Et 6 bonbonnes de catégorie E sont achetées

Exemple 3

Scénario: Celui où 2 transactions ont été faites
  Étant donné 1 transaction faite le 2050-03-10 pour 1 single pass Nebula
  Et 1 autre transaction faite le 2050-04-25 pour 1 single pass Supergiant
  Quand un rapport d'oxygène est demandé
  Alors 15 chandelles ont été utilisées le 2050-03-10
  Et la fabrication de 5 bonbonnes s'est terminée le 2050-03-30
  Et 8L d'eau ont été utilisés le 2050-04-25
  Et la fabrication de 3 bonbonnes s'est terminée le 2050-05-05

Exemple 4

Scénario: Celui où il y a un surplus d'oxygène qui est utilisé
  Étant donné 1 transaction faite le 2050-03-10 pour 4 single passes Nebula
  Et 1 autre transaction faite le 2050-03-11 pour une single pass Nebula 
  Quand un rapport d'oxygène est demandé
  Alors 45 chandelles ont été utilisées le 2050-03-10
  Et la fabrication de 15 bonbonnes s'est terminée le 2050-03-30
  Et l'inventaire comporte 15 bonbonnes de grade A

La 1ere transaction nécessite 12 bonbonnes (4 jours x 3 bonbonnes/jour) mais les productions sont en lot de 5 donc 15 bonbonnes fabriquées, il en reste 3. La 2e transaction ne nécessite donc aucune fabrication puisque qu’il y a 3 bonbonnes inutilisées.

API

Requête

GET /report/o2

{ 
  "inventory": [
                    {
                        "gradeTankOxygen": "E || "B" || "A",
                        "quantity": 0::int
                    }, ...
               ],
  "history" : [
                 {
                     "date": "2050-01-10",
                     "qtyOxygenTankBought": 0::int,
                     "qtyWaterUsed": 0::int,
                     "qtyCandlesUsed": 0::int,
                     "qtyOxygenTankMade": 0::int,
                 },...
               ]
} 

Exemple

À partir des données du scénario de l’exemple 3

GET /report/o2

{ 
  "inventory": [
                    {
                        "gradeTankOxygen": "B",
                        "quantity": 3
                    }, 
                    {
                        "gradeTankOxygen": "A",
                        "quantity": 5
                    }
               ],
  "history" : [
                 {
                     "date": "2050-03-10",
                     "qtyOxygenTankBought": 0,
                     "qtyWaterUsed": 0,
                     "qtyCandlesUsed": 15,
                     "qtyOxygenTankMade": 0
                 },
                 {
                     "date": "2050-03-30",
                     "qtyOxygenTankBought": 0,
                     "qtyWaterUsed": 0,
                     "qtyCandlesUsed": 0,
                     "qtyOxygenTankMade": 5
                 },
                 {
                     "date": "2050-04-25",
                     "qtyOxygenTankBought": 0,
                     "qtyWaterUsed": 8,
                     "qtyCandlesUsed": 0,
                     "qtyOxygenTankMade": 0
                 },
                 {
                     "date": "2050-05-05",
                     "qtyOxygenTankBought": 0,
                     "qtyWaterUsed": 0,
                     "qtyCandlesUsed": 0,
                     "qtyOxygenTankMade": 3
                 },
               ]
} 

Questions et réponses sur la story:

20/09/2019

Est-ce que l’oxygène est payé par les festivaliers?

Non, le prix de l’oxygène est payé par l’organisation.

Si j’ai des bonbonnes de grade B en excédent, est-ce que je produis quand même de l’oxygène de grade A ou je peux utiliser les bonbonnes B en excédent avant?

Si vous avez le temps de produire de l’oxygène de grade A, fabriquez-en même si vous avez des bonbonnes de grade B en excédent. Cependant, si vous n’avez pas le temps de produire de l’oxygène de grade A, vous devez fabriquer du grade B. Alors si vous en avez déjà en excédent, à ce moment vous pouvez utiliser l’excédent de B.

Est-ce que la date de fin d’une production d’oxygène peut survenir le premier jour du festival (17 juillet)?

Oui.

Si la fabrication d’oxygène commence le 1er, si le délai est de 10 jours, est-ce que l’oxygène est prêt le 10 ou le 11?

L’oxygène sera prêt le 11.

Pouvons-nous présumer qu’il n’y a pas de perte lors de la production d’oxygène?

Oui. Si une production d’oxygène grade A de 5 bonbonnes est entamée, alors dès le départ on peut considérer que la production sera de 5 bonbonnes exactement. C’est pourquoi il n’est pas nécessaire d’attendre la fin de la production d’oxygène pour affirmer qu’il y a un excédent.