Opis skrócony przypadków użycia
===============================

Aktorzy procesu i ich cele
--------------------------

Aktor       | Cel
------------|------------------------------
Klient      | wybranie produktu, zapłata za produkt, odbiór reszty(jeżeli istnieje)
Dostawca    | uzupełnienie brakujących produktów, odbiór przychodu
Serwisant   | uzyskanie autoryzowanego dostępu, dostęp do mechanizmów wewnętrznych maszyny, naprawa oraz serwis automatu
Moduł komunikacji | powiadomienie serwisanta o usterce, powiadomienie dostawcy o brakach w towarze

Słownik
-------

Hasło      |Opis
-----------|-----------------------------
Kasetka     | miejsce, do którego trafiają wrzucone banknoty oraz monety
Gotowy produkt | produkt niewymagający obróbki przed podaniem klientowi
Ciepły produkt | produkt wymagający obróbki cieplnej oraz personalizacji przez klienta
Moduł komunikacji | moduł odpowiedzialny za komunikowanie serwisantowi oraz dostawcy stanu wymagającego ich interwencji
Klucz #1 | klucz służący do otwarcia drzwiczek serwisowych automatu
Klucz #2 | klucz służący do otwarcia sejfu automatu


Przypadki użycia
----------------

### Use case 1: Uzupełnienie towaru

Dostawca wpisuje unikalny kod serwisowy wprowadzając automat w tryb serwisowy, a następnie otwiera drzwiczki serwisowe automatu kluczem #1 i uzupełnia brakujące towary. Dostawca zamyka drzwiczki serwisowe maszyny kluczem #1 i podaje ponownie kod. Automat przechodzi w tryb operacyjny.

### Use case 2: Odbiór przychodu

Dostawca wpisuje unikalny kod serwisowy wprowadzając automat w tryb serwisowy, a następnie otwiera drzwiczki serwisowe automatu kluczem #1. Dostawca otwiera sejf z kasetką za pomocą klucza #2, a następnie zastępuje obecną tam kasetkę kasetką pustą. Dostawca zatrzaskuje sejf, a następnie zamyka drzwiczki serwisowe automatu. Dostawca wpisuje kod serwisowy, a maszyna przechodzi w tryb operacyjny.


### Use case 3: Zakup gotowego produktu

Klient wpisuje kod produktu. Klient wybiera metodę płatności, a następnie płaci wedle dokonanego wyboru. Automat wydaje wybrany produkt.

### Use case 4: Zakup ciepłego produktu

Klient wpisuje kod produktu. Klient personalizuje wybrany produkt. Klient wybiera metodę płatności, a następnie płaci wedle dokonanego wyboru. Automat przygotowuje posiłek. Automat informuje o możliwości odbioru gotowego produktu, a następnie go wydaje.

### Use case 5: Płatność kartą

Klient wybiera metodę płatności kartą. Klient postępuje według instrukcji wyświetlanych na terminalu płatniczym. Następuje finalizacja płatności, automat informuje o pomyślnej płatności.

### Use case 6: Płatność gotówką

Klient wybiera metodę płatności gotówką. Klient wpłaca określoną ilość gotówki do automatu korzystając z otworu na monety bądź z otworu służącego do wpłaty banknotów. Automat informuje o udanej płatności. Automat wydaje resztę jeżeli takowa się należy. 

### Use case 7: Zmiana sposobu płatności

Klient wybiera przycisk powrotu do wybrania metody płatności. Automat zwraca wpłaconą gotówkę jeżeli takowa została wpłacona. Automat prosi o wybranie metody płatności.

### Use case 8: Zwrot wpłaconej gotówki

Klient wybiera przycisk "zwrot gotówki" na automacie. Automat zwraca wpłaconą gotówkę.

### Use case 9: Naprawa automatu

Serwisant wpisuje unikalny kod serwisowy wprowadzając automat w tryb serwisowy, a następnie otwiera drzwiczki serwisowe automatu kluczem#1. Serwisant dokonuje analizy systemu. Serwisant wykonuje niezbędne naprawy. Serwisant zamyka drzwiczki serwisowe kluczem #1 i podaje ponownie kod. Automat przechodzi w tryb operacyjny.

### Use case 10: Przegląd techniczny automatu

Serwisant wpisuje unikalny kod serwisowy wprowadzając automat w tryb serwisowy, a następnie otwiera drzwiczki serwisowe automatu kluczem #1. Serwisant dokonuje przeglądu technicznego systemu. Serwisant zamyka drzwiczki serwisowe kluczem #1 i podaje ponownie kod. Automat przechodzi w tryb operacyjny.

### Use case 11: Wysłanie komunikatu o braku towaru

Moduł komunikacji wysyła komunikat do dostawcy o braku towaru.

### Use case 12: Wysłanie komunikatu o usterce

Moduł komunikacji wysyła komunikat do serwisanta o usterce.