Odwoływanie zajęć
Przewodnik po odwoływaniu zajęć dla pracowników recepcji i administracji. Wyjaśnia on, co dzieje się z zajęciami i płatnością klienta, w zależności od tego, jaki to typ zajęć i z czyjej winy są odwoływane.
👤 Instrukcja dla pracownika
W codziennej pracy operacyjnej występują dwie główne sytuacje odwołania zajęć:
-
Klient samodzielnie odwołuje zajęcia przez aplikację. (Odwołanie przez Uczestnika) Ścieżka dla klienta:
Portal Klienta ➔ Kalendarz (lub Moje zajęcia) ➔ Wybierz zajęcia ➔ Kliknij "Odwołaj" -
Odwołanie zajęć przez administrację (np. nieobecność trenera, zamknięcie obiektu). (Odwołanie przez Pracownika) Ścieżka dla pracownika:
Dashboard ➔ Harmonogram ➔ Wybierz zajęcia ➔ Kliknij ikonę kosza ("Usuń") przy danym uczestniku (lub "Odwołaj całe zajęcia")
Poniższe zestawienie ilustruje procesowanie środków klienta w poszczególnych scenariuszach. Kluczowym czynnikiem jest typ odwoływanych zajęć.
Zestawienie referencyjne (Zasady zwrotów i odrabiania)
| Typ zajęć | Kto odwołuje? | Czy klient zapłacił? | Status po odwołaniu / Zwrot | Status transakcji |
|---|---|---|---|---|
| Grupowe (szkółka) | 👤 Uczestnik | ✅ Tak | Możliwość odrabiania | Opłacona |
| Grupowe | 👤 Uczestnik | ⏳ Nie | Możliwość odrabiania | Do zapłaty |
| Grupowe | 👨💼 Administracja | ✅ Tak | Zwrot środków do Wirtualnego Portfela | Zwrócona |
| Grupowe | 👨💼 Administracja | ⏳ Nie | Całkowite anulowanie (brak zadłużenia) | Anulowana |
| Indywidualne | 👤 Uczestnik | ✅ Tak | Zwrot środków do Wirtualnego Portfela | Zwrócona |
| Indywidualne | 👤 Uczestnik | ⏳ Nie | Całkowite anulowanie | Anulowana |
| Indywidualne | 👨💼 Administracja | ✅ Tak | Zwrot środków do Wirtualnego Portfela | Zwrócona |
| Próbne | 👤 Uczestnik | ✅ Tak | Możliwość odrabiania | Opłacona |
| Próbne | 👨💼 Administracja | ✅ Tak | Zwrot środków do Wirtualnego Portfela | Zwrócona |
Obsługa poszczególnych typów zajęć
1. Zajęcia grupowe (szkółkowe) – możliwość odrabiania Klienci uczestniczący w zajęciach grupowych mogą samodzielnie anulować swoją obecność za pośrednictwem aplikacji mobilnej lub webowej. Skutkuje to następującymi konsekwencjami:
- Niewykorzystane zajęcia zostają przeniesione do puli "Do odrobienia".
- Przepisanie do puli odrabiania następuje niezależnie od faktu opłacenia rezerwacji (nieopłacona transakcja pozostaje aktywna na koncie klienta).
- Zasada zwrotów: W przypadku usunięcia uczestnika przez pracownika administracji (np. z powodu nieobecności trenera), klient otrzymuje automatyczny zwrot środków na saldo Wirtualnego Portfela, co umożliwia pokrycie kosztów w kolejnym cyklu rozliczeniowym.
2. Zajęcia indywidualne – brak odrabiania Zajęcia indywidualne (wymagające rezerwacji kortu oraz wyłączności trenera) obsługiwane są według innej procedury:
- Mechanizm odrabiania zajęć jest w tym przypadku niedostępny.
- Niezależnie od strony inicjującej anulację (klient przez aplikację lub pracownik administracji), opłacone środki podlegają zwrotowi na Wirtualny Portfel, a rezerwacja ulega całkowitemu anulowaniu.
3. Zajęcia próbne (rekrutacyjne) Rejestracja na zajęcia próbne wymaga uiszczenia opłaty z góry.
- W przypadku anulacji przez klienta – nabywa on prawo do odrobienia zajęć w innym terminie próbnym.
- W przypadku odwołania przez administrację – pełna kwota zostaje zwrócona na Wirtualny Portfel.
Funkcjonowanie Wirtualnego Portfela
Zatwierdzenie zwrotu za anulowane zajęcia nie implikuje zlecenia przelewu na rachunek bankowy lub kartę płatniczą klienta. Środki zostają zaksięgowane w Wirtualnym Portfelu w profilu użytkownika.
- Użytkownik może wykorzystać zgromadzone saldo podczas opłacania przyszłych rezerwacji.
- Aktualne saldo portfela jest widoczne na karcie uczestnika w panelu administracyjnym oraz w zakładce Finanse.
- Zaletą tego rozwiązania jest natychmiastowa dostępność środków, bez konieczności oczekiwania na standardowe sesje księgowe banków.
Procedura Odrabiania Zajęć
Jeżeli klient skontaktuje się z recepcją z zapytaniem o możliwość odrobienia anulowanych wcześniej zajęć grupowych, należy przekazać mu następującą instrukcję:
Ścieżka dla klienta: Portal Klienta ➔ Odwołane zajęcia ➔ Wybierz interesujący termin z listy ➔ Kliknij "Zapisz się"
- W zakładce "Odwołane zajęcia" system prezentuje listę dostępnych grup, które odpowiadają poziomowi zaawansowania uczestnika oraz dysponują wolnymi miejscami.
- Zatwierdzenie wybranego terminu powoduje rejestrację bez konieczności ponoszenia dodatkowych opłat. Do wygenerowanej rezerwacji przypisywana jest zwolniona płatność, opatrzona adnotacją
(odrabianie). - Jeżeli w momencie anulacji płatność posiadała status
Do zapłaty, uczestnik zostanie pomyślnie zarejestrowany, jednak wezwanie do zapłaty na jego koncie pozostanie aktywne.
Powiadomienia automatyczne
Po przeprowadzeniu procedury anulacji, system wysyła zautomatyzowane powiadomienie e-mail. Jeżeli proces został zainicjowany przez pracownika administracji, treść wiadomości zawiera informację o powodzie (np. zamknięcie obiektu) oraz potwierdzenie przekazania środków do Wirtualnego Portfela. Komunikat zawiera również dane kontaktowe do lokalnych oddziałów recepcji.
🛠️ Dokumentacja techniczna
Poniższa sekcja wyjaśnia procesy zachodzące w systemie podczas odwoływania i substytucji. Jest przeznaczona dla deweloperów.
Procesy zachodzące podczas Odrabiania (Substytucji)
Gdy uczestnik wybiera nowy termin zajęć grupowych za zajęcia wcześniej odwołane:
- Weryfikacja substytucji – Aplikacja sięga po wpis z tabeli odwołanych (lub flagi) i weryfikuje wolne miejsca w wybranym terminie.
- Poszukiwanie płatności (Payment Matching) – Kluczowy krok. Aplikacja szuka najnowszej płatności użytkownika dla ról
schoollubtrialbez powiązania z terminem, gdzie jej status to nie jestZwróconaaniAnulowana. Dotyczy to statusówOpłaconaorazDo zapłaty. - Przypięcie płatności (Binding) – Odszukana płatność jest dopinana do nowej rezerwacji w kalendarzu, a jej pole
description(tytuł/opis) otrzymuje dopisek(odrabianie). Właściwy status się nie zmienia (tzn. zapłacona nadal jest zapłacona, a niezapłacona nadal windykuje użytkownika). - Brak płatności (Fallback) – Jeśli z jakiegoś powodu na koncie gracza brakuje tego rekordu, serwer wylicza według cennika kwotę i tworzy nowy wiersz w tabeli płatności ze statusem
Do zapłaty. - Powiadomienie – Uczestnik otrzymuje wiadomość opartą o event
game_substitutionprzez system komunikacji.
Statusy tabeli Transakcji (Payments)
W strukturach backendowych płatności (np. dla tablic w Prisma / D1) zdefiniowane są statusy:
Opłacona– standardowy stan po webhooks od Przelewy24 lub ręcznym oznaczeniu przez pracownika recepcji.Do zapłaty– systemowy stan długu, widoczny w zakładkach zaległości.Zwrócona– modyfikacja powiązana z triggerem dodania funduszy do rekorduwallet_balanceużytkownika.Anulowana– twarde usunięcie zapotrzebowania, ignorowane w raportach finansowych (MRR/ARR).
Moduł zajęć indywidualnych a odrabianie
Odrabianie zajęć zablokowane jest (hardcoded w warstwie reguł biznesowych) dla activity_type = 'individual'. Taka struktura wynika z faktu, że czas i zaangażowanie kortu jest w nich wyłączne dla gracza, stąd logiką biznesową jest operacja na obrocie z wykorzystaniem zwrotu do tabeli portfela, a nie kolejka zastępstw.