You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Zajęcia mają przypisane: dzien w tygodniu, godzinę rozpoczęcia, czas trwania, trenera prowadzącego. Np.: we wtorki o 17:00 odbywają się zajęcia z podnoszenia ciężarów prowadzone przez Tomka.
Na podstawie grafiku dostępne są konkretne terminy zajęć, np.: podnoszenie ciężarów we wtorek 17 stycznia o 17:00.
Administrator może odwołać konkretny termin zajęć (np. z powodu święta)
Trenerzy
Trener może prowadzić maksymalnie N niepokrywających się zajęć w tygodniu
Terener może prowadzić maksymalnie M zajęć w ciągu dnia
Terener może prowadzić zajęcia dla maksymalnie N osób (zależne np. od kwalifikacji, stażu itp)
Zapisy na zajęcia
Można zapisać się na nie więcej niż 5 zajęć (w konretnym terminie) do przodu. Np.: zapisuję się na podnoszenie ciężarów w każdy dzień danego tygodnia na godzinę 19:00.
Na dane zajęcia zapisać się może nie więcej niż N osób (gdzie N jest specyficzne dla prowadzącego dane zajęcia)
Gdy w momencie zapisu nie ma wolnych miejsc, członek klubu jest wpisywany na listę rezerwową
Maksymalnie 6 osób może być na liście rezerwowej dla danego terminu zajęć.
Można zapisać się tylko na jedne zajęcia danego typu w ciągu jednego dnia
Odwoływanie rezerwacji
Rezerwację można odwołać najpóźniej 1 godzinę przed terminem zajęć
Uczestnictwo w zajęciach potwierdzane jest przez zeskanowanie karty w klubie
Po trzeciej niepotwierdzonej rezerwacji (tzn. w przypadku gdy osoba zapisała się na zajęcia ale nie zeskanowała karty) następuje ban na zapisy na 4 dni.
Gdy ktoś odwoła rezerwację, to pierwsza osoba z listy rezerwowej dostaje się na listę uczestników danych zajęć. Wysyłany jest do niej SMS z powiadomieniem
Widoki
Kalendarz z wpisanymi zajęciami które można kliknąć i: a) członek klubu może się na nie zapisać, b) administrator może odwołać zajęcia c) administrator może przypisać trenera. Przy każdych zajęciach jest informacja o wolnych miejscach.
Lista zajęć na które zapisany jest zalogowany członek klubu + przyciski do anulowania zapisu
Widok administratora: grafik zajęć + formularz do dodania nowych pozycji
Widok trenera: lista osób zapisanych na dane zajęcia
Implementacje
CRUD
Logika w encjach JPA (bez agregatów)
Agregaty z adnotacjami JPA (+ domain services)
Wyeliminowanie domain services
Osobne tabele na pola do odczytu (interfejs "listenera" w domenie)
Agregaty bez adnotacji JPA + repozytorium mapujące je na/z klasy JPA przy zapisie/odczycie (osobny model do rejestracji?)
Rejestrowanie eventów domenowych (jako dodatek do dotychczasowego repozytorium)