Use Case 2: Dodawanie potrawy niestandardowej
=====================

**Aktor podstawowy: Kelner**


Główni odbiorcy i oczekiwania względem systemu:
-----------------------------------------------

 - Odbiorca1: Kelner
    - Chce dodawać i edytować potrawy niestandardowe.
    - Oczekuje, że utworzona potrawa niestandardowa zostanie dopisana do zamówienia.
    - Chce mieć wgląd w szczegóły potrawy niestandardowej.

 - Odbiorca2: Klient
    - Chce zamówić niestandardową potrawę jako część swojego zamówienia.
    - Oczekuje sprawnej obsługi i dodania potrawy zgodnej z jego oczekiwaniami.

 - Odbiorca3: Kucharz
    - Chce otrzymać w zamówieniu pełny opis potrawy niestandardowej, aby ją przygotować.

Warunki wstępne:
----------------

Kelner zbiera informacje od klienta na temat zamówienia. Terminal kelnera działa poprawnie.

Warunki końcowe:
----------------

Potrawa jest dodana do listy zamówień. Jest traktowana jak każda inna potrawa. Przechowywane są pełne informacje o składnikach potrawy.

Scenariusz główny (ścieżka podstawowa):
---------------------------------------

 1. Klient prosi o zamówienie potrawy niestandardowej.
 2. Kelner wybiera opcje dodania potrawy niestandarowej.
 3. Klient podaje szczegółowe informacje na temat potrawy - jej składniki i dodatki. <!--  rozpisać?-->
 4. Kelner wybiera składniki i dodatki zgodnie z oczekiwaniami klienta.
 5. Kelner zatwierdza potrawę.
 6. System dodaje potrawę do listy zamówienia. Dostępny jest podgląd szczegółowy potrawy.
 7. Klient może zamówić kolejną potrawę niestandardową - powtarzane są kroki 1-6.


Rozszerzenia (ścieżki alternatywne):
------------------------------------

 *a. W przypadku zawieszenia się systemu: <!-- rozszerzenie *a może wystąpić w dowolnym kroku -->

   1. Kelner resetuje system, prosi o odtworzenie stanu przed zawieszeniem.
   2. System odtwarza stan zamówienia i potraw niestandardowych.

 3a. Brak podanych składników w spiżarni:

   1. Kelner informuje klienta o braku składników na potrawę.
   2. Klient kontynuuje tworzenie niestandardowego zamówienia.

     2a. Klient ze względu na brak składników rezygnuje z opcji zamówienia niestandardowej potrawy.

       1. Kelner anuluje tworzenie niestandardowej potrawy.
       2. Kelner kontynuuje zbieranie informacji na temat innych potraw zamawianych od klienta.
 
2-5a. Klient zmienia zdanie i prosi kelnera o odrzucenie potrawy niestandardowej w trakcie jej tworzenia:
  1. Kelner wybiera opcję anulowania tworzenia niestandardowej potrawy.
  2. System nie dodaje do zamówienia anulowanej potrawy niestandardowej.

5a. Potrawa nie jest poprawna (np. jest pusta):
  1. System informuje o błędzie.
  2. Kelner informuje klienta o zaistniałej sytuacji.
  3. System nie zapisuje informacji o niepoprawnej potrafie.
  4. Kontynuowany jest proces zbierania zamówienia od klienta.

Wymagania specjalne:
--------------------

 - Terminal kelnera działa na ekranie dotykowym.

Wymagania technologiczne oraz ograniczenia na wprowadzane dane:
---------------------------------------------------------------

 5a. Potrawa niestandardowa składa się z conajmniej jednego składnika, dodatki są opcjonalne.


Kwestie otwarte:
----------------

 - Czy niestandardowa potrawa może składać się z jakichkolwiek składnikow ze spiżarni?