CHF - Gérer les Chefs

En tant que propriétaire du restaurant, je peux engager des chefs pour optimiser mes profits.

En effet, la TEAM souhaite avoir avec elle une équipe qui peut répondre à ses besoins tout en limitant ses coûts, compte tenu des projets passés. Ils ont donc recours aux meilleurs chefs de la galaxie pour répondre aux demandes de leurs clients. Ils ne veulent pas revivre un fiasco, donc chaque chef a au moins suivi son cours à l’école culinaire de Vénus.

Les chefs et leurs restrictions culinaires qu’iels peuvent faire

  Aucune  Végétalien   Végétarien Allergie  Maladie
Thierry Aki   x        
Bob Smarties     x      
Bob Rossbeef         x    
Bill Adicion         x  
Omar Calmar           x
Écharlotte Cardin   x   x  
Éric Ardo         x   x
Hans Riz x       x
Amélie Mélo     x   x  

Chaque chef coûte 6000CAD$ par soir.

Chaque chef excèle dans un art culinaire. Il faut donc que pour une journée précise, chaque client soit satisfait tout en limitant les coûts. Cependant, c’est bien connu, les Chefs ont un très grand égo; ils doivent donc être choisis en ordre d’ancienneté. Les chefs ci-haut sont déjà en ordre d’ancienneté: le plus ancien est en haut de la liste, jusqu’en bas, la moins ancienne. Il faut donc prioiriser les plus anciens. Finalement, un chef peut accomoder cinq (5) clients.

Malheureusement, les demandes parfois capricieuses des chefs font en sorte qu’il est impossible de réserver compte tenu du fait qu’on ne pourrait à la fois remplir toutes les demandes et servir tous les clients. Ainsi, si un client essaie de réserver à une date alors que c’est impossible, il est averti.

Bref, il faut utiliser le nombre minimal de chefs pour répondre aux demandes des clients pour une soirée donnée.

Conditions de succès

Condition Description
CHF 1 Chaque chef coûte 6000CAD$.
CHF 2 Le rapport est généré pour toutes les dates où au moins un (1) chef travaille.
CHF 3 Le prix doit être minimisé.
CHF 4 Un client qui essaie de réserver un soir qui serait impossible à choisir un.e bon chef est averti qu’il ne peut le faire.
CHF 5 Chaque chef répond strictement aux besoins demandés.
CHF 6 La quantité minimale de chefs est utilisée.
CHF 7 Les chefs peuvent servir cinq (5) clients.
CHF 8 Les chefs doivent être choisis en ordre d’ancinneté. Les plus anciens sont à prioriser.

API

Requête

GET /reports/chefs

Réponses

HTTP 200 OK

(Les chefs ici n’ont pas les bons noms, ne pas les considérer, c’est seulement pour illustrer l’ordre alphabétique.)

Headers

{
  "dates": [
    {
       "date":"2020-07-20",
        "chefs": [
            "Amélie Bacon",
            "Boris Vian"
        ],
        "totalPrice:" 12000
    },
    {
        "date": "2020-07-21",
        "chefs": [
            "Doris Fruitier"
        ],
        "totalPrice:" 6000
    },
        "date": "2020-07-24",
        "chefs": [
            "Alexandre Boyardi",
            "Céline Vanyle",
            "Diane Fromaj"
        ],
        "totalPrice:" 18000
    },
    ...
}

Erreurs LORS D’UNE RÉSERVATION

HTTP 400 Bad Request

Dans le cas où une réservation contreviendrait à l’une des règles, l’exception suivante est lancée.

{
  "error": "TOO_PICKY"::string,
  "description": "You seem to be too picky and now, you cannot make a reservation for this date."::string
}

Précisions

Aucune pour le moment