AAC - Attention aux champignons

En tant que propriétaire du restaurant, je dois pouvoir restreindre l’accès au restaurant pour suivre les lois du Ministère de l’Agriculture, des Pêcheries et de l’Alimentation du Lébec.MAPAL.

Suite au rapport de GLI, il faut désormais prévoir les moments pour acheter tous les ingrédients et m’assurer que le menu puisse être convenablement préparé et finalement être succulemment dégusté. En effet, ce n’est pas très compliqué. Chaque restriction alimentaire vient avec son lot d’ingrédients, mais aussi avec des risques associés quant à la salubrité. Ainsi, lorsqu’un client fait sa réservation, il fallait prévoir d’avance l’achat et la préparation du menu.

C’est bien connu, les tomates prennent du temps à rougir sur la lune, il faut donc s’assurer de les commander d’avance: ceci prend du temps, bien sûr. Pour être exact, ceci prend cinq (5) jours. La livraison étant compliquée et gérée par un tierce, il est impossible de prendre un menu avec des tomates lors des cinq (5) premiers jours du Hoppening.

De plus, depuis les événements de 2079, si un certain client ayant une restriction alimentaire d’allergies, il faut absolument s’assurer qu’aucun autre client puisse réserver à une même date si celui-ci veut manger des carrotes. À l’inverse, s’il y a déjà un client qui mange des carrotes, le client allergique ne peut pas réserver.

Conditions de succès

Condition Description
AAC 1 Pour une date donnée, si un client a déjà réservé une table avec un menu qui contient des carottes, aucune réservation ne peut être faite à cette date avec la restriction allergies.
AAC 2 Pour une date donnée, si un client a déjà réservé une table avec une restriction allergies, aucune réservation ne peut être faite à cette date avec un menu qui contient des carottes.
AAC 3 Un client qui mange des tomates ne peut pas réserver dans les cinq (5) premiers jours du Hoppening.

HTTP 400 Bad Request

Dans le cas où une réservation contreviendrait à l’une de ces 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

Pour vérifier s’il y a des tomates et/ou des carottes dans un plat, il faut se fier au menu de la troisième story. Autrement, vous devez vous assurer que la condition soit remplie pour tous les menus. Il se doit donc d’être insensible à la case et qu’il soit vérifié pour que le menu complet d’une personne le contienne. Peut-être est-ce que des expressions régulières pourraient vous aider.