Пользователь вводит имя или "табельный номер".
Имя привязано к устройству. Если одно имя используется на разных устройствах, то откроются разные игры.
Табельный номер напрямую привязан к игре
В начале игры в кассе есть по 10 купюр всех видов, кроме самой крупной. Самая крупная купюра - тысячная. Тысячных купюр - одна штука
- У кассы стоит покупатель. У него какие-то товары.
- Нужно просканировать товары, чтобы узнать, что покупатель собирается купить.
- Потом нужно попросить у покупателя деньги.
- Он даст ту сумму, которую может дать исходя из тех купюр, которые у него есть.
- TODO: Можно попросить у покупателя ещё денег
- Нужно открыть кассу для того, чтобы забрать деньги покупателя
- Покупателю нужно дать сдачу
- TODO: Если подходящих купюр нет, то их можно разменять или укрупнить. Это долгая операция. Это отрицательно влияет на настроение покупателя.
- Сделка завершается выдачей чека
- TODO: Если сдачи меньше, чем нужно, то покупатель может заметить недостачу. Тогда нужно исправить сдачу и снова выдать чек.
- Уровни отличаются друг от друга следующими параметрами: количество покупателей, разнообразие купюр у покупателя, количество покупок.
- На начальных уровнях мало покупателей и покупок, и есть все номиналы купюр.
- После завершения уровня показывается статистика, сколько покупателей остались недовольны, и какой была недостача.
- Деньги попавшие в кассу на одном уровне, переходят на другой уровень.
- Django
- htmx
- pydantic - планируется убрать
- TODO: Adaptix
- TODO: eventsourcing
- TODO: pytest-bdd