Klienci
Przegląd
Moduł klientów pozwala pracownikom (employee, admin) zarządzać listą klientów oraz przeglądać szczegóły każdego z nich. Klient to użytkownik, który ukończył onboarding.
Lista klientów (/dashboard/clients)
Dostęp: Tylko rola employee lub admin.
Tabela klientów
| Kolumna | Opis |
|---|---|
| Imię i nazwisko | Z tabeli user |
| Adres e-mail klienta | |
| Telefon | Opcjonalny numer telefonu |
| Typ konta | parent (rodzic) lub self_student (uczeń) |
| Stawka godzinowa | Indywidualna stawka (zł/h) |
| Metoda płatności | Gotówka / Online / Oba |
| Status onboardingu | Czy onboarding ukończony |
| Liczba uczniów | Ilość uczniów przypisanych do klienta |
| Data utworzenia | Data rejestracji |
Akcje
- Zaproś klienta — otwiera dialog zaproszenia
- Kliknięcie wiersza — przechodzi do szczegółów klienta
Szczegóły klienta (/dashboard/clients/[id])
Dostęp: Tylko rola employee lub admin.
Sekcje
Informacje o kliencie
- Imię, nazwisko, e-mail, telefon
- Typ konta, data rejestracji
Ustawienia korepetycji
- Stawka godzinowa (edytowalna)
- Metoda płatności (edytowalna)
- Notatki (edytowalne)
Uczniowie klienta
- Tabela uczniów przypisanych do tego klienta
- Imię, nazwisko, data urodzenia, poziom nauki
API
GET /api/clients/[id]
Pobiera dane klienta wraz z uczniami.
Dostęp: Employee/Admin lub właściciel konta.
Odpowiedź:
{
"id": "client-001",
"type": "parent",
"phone": "+48123456789",
"onboardingCompleted": true,
"customHourlyRate": 150,
"paymentMethod": "cash",
"notes": "Notatka",
"userName": "Jan Kowalski",
"userEmail": "jan@example.com",
"students": [
{
"id": "student-001",
"firstName": "Anna",
"lastName": "Kowalska",
"dateOfBirth": "2010-03-20T00:00:00.000Z",
"level": "podstawowa"
}
]
}
PATCH /api/clients/[id]
Aktualizuje dane klienta.
Dostęp:
- Employee/Admin → może edytować:
phone,customHourlyRate,paymentMethod,notes - Klient (właściciel) → może edytować tylko:
phone
Body (JSON — wszystkie pola opcjonalne):
{
"phone": "+48987654321",
"customHourlyRate": 200,
"paymentMethod": "online",
"notes": "Nowa notatka"
}
| Kod | Opis |
|---|---|
| 200 | Zaktualizowano |
| 400 | Nieprawidłowe dane (walidacja Zod) |
| 401 | Niezalogowany |
| 403 | Brak uprawnień |
| 404 | Klient nie znaleziony |