Silnik Stronoroba Zapisy na Zajęcia
Zapisy na zajęcia i karnety: plan tygodnia z liczbą wolnych miejsc, lista rezerwowa, obecności, karnety na wejścia i terminy oraz rozliczenie prowadzących.
System zapisów na zajęcia grupowe dla studia jogi, szkoły tańca, klubu sportowego czy szkoły językowej. Klient widzi plan tygodnia razem z liczbą wolnych miejsc i zapisuje się jednym kliknięciem — zanim zadzwoni, żeby zapytać, czy jeszcze coś zostało.
Co jest w środku
- Plan tygodnia z liczbą wolnych miejsc — „12 wolnych miejsc" zamiast „zadzwoń i zapytaj"
- Lista rezerwowa — komplet nie kończy zapisów, tylko ustawia kolejkę; zwolnione miejsce idzie do pierwszej osoby
- Karnety na wejścia i na czas, z historią ruchów: co zeszło, kiedy i za co
- Obecności odhaczane po zajęciach, z listą, kto się nie pojawił
- Prowadzący, sale, zastępstwa i odwołane terminy z powodem
- Odwoływanie zapisu do ustalonej godziny przed zajęciami — po tym terminie wejście z karnetu przepada, i jest to napisane na stronie
- Kupony, opinie zapraszane po zajęciach, strona „moje zajęcia" dla klienta
- Dane strukturalne wydarzeń, mapa witryny, własne wzorce tytułów i opisów
Jedna decyzja, która odróżnia ten silnik od rezerwacji wizyt
Konkretne zajęcia mają stan, więc są zapisane w bazie — nie wyliczane. W salonie wolny termin to po prostu dziura w grafiku i nic więcej. Zajęcia mają kto-jest-zapisany, kto czeka na liście rezerwowej, czy termin odwołano i dlaczego, kto prowadzi na zastępstwie, ile faktycznie było miejsc i kto się pojawił. Tego nie da się wyliczyć z reguły tygodniowej — musi wisieć na konkretnym wtorku, a nie na „wtorkach w ogóle". Grafik jest więc wyłącznie szablonem, z którego powstają terminy na kilka tygodni w przód.
Druga decyzja: karnet to prawo wstępu, a nie zapłata
Karnet zapisuje uprawnienie — ile wejść zostało i do kiedy są ważne — a nie historię płatności. Dzięki temu klient może dostać karnet w prezencie, odzyskać wejście po odwołanych zajęciach albo w ramach reklamacji, i żadna z tych sytuacji nie wymaga udawanej transakcji na zero złotych. Wejście schodzi przy potwierdzeniu obecności, nie przy zapisie — zapis rezerwuje tylko miejsce.
Wymagania
- PHP 8.0 lub nowszy z
pdo_mysqlimbstring - MySQL 5.7 / MariaDB 10.2 lub nowsze
- Zadanie cykliczne (cron) do generowania terminów z planu i do przypomnień
Napisz, ile zajęć tygodniowo prowadzisz i czy sprzedajesz karnety na wejścia, czy na czas — od tego zależy, jak ustawiamy cennik i zasady odwoływania.