En tant qu’organisateur du festival, il faut gérer le transport des festivaliers sur la planète Ulavalogy afin que ceux-ci arrivent à bon port pour assister à l’événement.

Tableau de capacité maximum par catégorie:

  Supernova Supergiant Nebula
Shuttle E.T. Spaceship Millennium Falcon Navette SpaceX (À vos risques)
Capacité maximale 1 personne 20 personnes 30 personnes
Prix 100 000$/shuttle 65 000$/shuttle 30 000$/shuttle

Pour une même catégorie, un shuttle doit être plein avant qu’un autre commence à se remplir. C’est-à-dire qu’il faut attendre qu’il y ait 30 personnes à bord d’un shuttle SpaceX avant qu’un autre shuttle SpaceX soit appelé.

Conditions de succès

Condition Description
COS 1 Réserver la place dans une navette dès l’achat d’un billet.
COS 2 Tenir compte des dates d’arrivée et de départ (daily: aller-retour la même journée, weekly: aller le 1er jour et retour le dernier jour).
COS 3 Indiquer le numéro des passes des gens qui sont à bord du shuttle.
COS 4 Retourner les shuttles planifiés de départ et d’arrivée pour la date qui est en paramètre.
COS 5 Si aucun paramètre de date n’est inscrit, alors retourner les shuttles planifiés de départ et d’arrivée pour tous les jours du festival.

Note 1: Un départ est un trajet de la Terre vers la planète Ulavalogy et une arrivée est un trajet de la planète Ulavalogy vers la Terre.

Note 2: Même si un festivalier participe au festival X jours consécutifs, il effectue un aller-retour à chaque jour, sauf s’il a un package (aller 1er jour de la semaine et retour le dernier jour)

Exemple

Scénario: Celui où 2 navettes différentes sont réservées
  Étant donné 1 single pass Supernova pour la journée du 2050-07-19 dont le numéro est 123456789
  Et 1 single pass Nebula pour la journée du 2050-07-19 dont le numéro est 234567891  
  Quand on demande les informations sur les navettes du 2050-07-19
  Alors on a un départ avec 1 shuttle E.T. Spaceship avec un passager dont la numéro de passe est 123456789
  Et on a un départ avec 1 shuttle SpaceX avec un passager dont la numéro de passe est 234567891
  Et on a une arrivée avec 1 shuttle E.T. Spaceship avec un passager dont la numéro de passe est 123456789
  Et on a une arrivée avec 1 shuttle SpaceX avec un passager dont la numéro de passe est 234567891

API

Requête

GET /shuttle-manifests?date=2050-07-19

Réponses

HTTP 200 Ok

{
 "departures: [  
                 {
                   "date": "2050-07-19",
                   "shuttleName": "ET Spaceship" || "Millenium Falcon" || "SpaceX"::string,
                   "passengers": [] ::long[]
                 }, 
                 ...
              ],
"arrivals: [
               {
                 "date": "2050-07-19",
                 "shuttleName": "ET Spaceship" || "Millenium Falcon" || "SpaceX"::string,
                 "passengers": [] ::long[]
               }, 
                ...
            ]
}

HTTP 400 Bad Request

Si la date de l’événement est en dehors de la durée du festival (17 juillet 2050 au 24 juillet 2050 inclusivement).

{
  "error": "INVALID_EVENT_DATE"::string,
  "description" : "event date should be between July 17 2050 and July 24 2050"::string
} 

Exemple:

À partir des données de l’exemple plus haut:

GET /shuttle-manifests?date=2050-07-19

Réponses

HTTP 200 Ok

{
 "departures": [  
                    {
                       "date": "2050-07-19",
                       "shuttleName": "ET Spaceship",
                       "passengers": [123456789]
                    }, 
                    {
                       "date": "2050-07-19",
                       "shuttleName": "SpaceX",
                       "passengers": [234567891]
                    }
                ],
 "arrivals": [
                   {
                     "date": "2050-07-19",
                     "shuttleName": "ET Spaceship",
                     "passengers": [123456789]
                   }, 
                   {
                     "date": "2050-07-19",
                     "shuttleName": "SpaceX",
                     "passengers": [234567891]
                   }
              ]
}

Précisions:

21/09/2019: Présumez qu’il y a autant de navettes nécessaires autant sur la Terre que sur la planète Ulavalogy pour les départs et les arrivées. Donc même si 3 navettes sont allées sur Ulavalogy, mais qu’on a besoin de 4 navettes pour ramener les festivaliers ce soir là, alors considérez qu’il y une 4e navette qui était déjà sur place pour satisfaire les besoins. Pour connaître le prix d’un retour seulement, divisez le prix d’un aller-retour par 2.

Questions et réponses sur la story:

20/09/2019

Est-ce que le prix du shuttle est par personne?

Non, le prix est par aller-retour. Donc un aller-retour Millenium Falcon coûte 65 000$.

Est-ce que le prix du shuttle est payé par les festivaliers?

Non, le prix des shuttles est payé par l’organisation.