4. Datový model (entity)
Ověřený fakt — zdrojová data z adresáře base44/entities/. Celkem 28 entit.
Hlavní entity
CalendarEvent
Centrální entita systému. Reprezentuje termín, blokaci nebo dovolenou v kalendáři.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
event_type |
enum | ano | appointment / blockage / vacation |
therapist_id |
string | ano | ID primárního terapeuta |
therapist_ids |
array[string] | ne | IDs všech terapeutů (párová terapie) |
room_id |
string | ne | ID místnosti |
client_id |
string | ne | ID klienta (jen appointment) |
booking_id |
string | ne | ID rezervace (pokud vznikla z portálu) |
is_online_booking |
boolean | ne | Rezervováno klientem přes portál |
date |
date | ano | Datum události |
start_time |
string | ano | HH:MM |
end_time |
string | ano | HH:MM |
all_day |
boolean | ne | Celodenní událost |
color |
string | ne | Vlastní barva (přepíše barvu terapeuta) |
service_type |
string | ne | Název výkonu |
status |
enum | ne | reserved, paid, confirmed, completed, excused, no_show_paid, no_show_unpaid, cancelled, auto_cancelled_unpaid, cancelled_late |
payment_status |
enum | ne | unpaid, pending, paid, refunded, partially_refunded |
payment_due_date |
string | ne | Termín pro úhradu (ISO datetime) |
notes |
string | ne | Poznámky |
is_recurring |
boolean | ne | Opakující se událost |
recurrence_rule |
string | ne | weekly, biweekly, monthly |
ms_outlook_event_id |
string | ne | ID události v MS Outlook (sync) |
Booking
Rezervace — vzniká při objednání klientem nebo přes portál.
| Pole | Typ | Popis |
|---|---|---|
client_id |
string | Klient |
therapist_id |
string | Terapeut |
room_id |
string | Místnost |
event_id |
string | Propojení na CalendarEvent |
date, start_time, end_time |
string | Kdy |
service_type |
string | Výkon |
status |
enum | Stav rezervace |
payment_status |
enum | Stav platby |
payment_due_date |
string | Splatnost |
is_online_booking |
boolean | Portálová rezervace |
cancellation_reason |
string | Důvod storna |
refund_amount |
number | Vrácená částka |
AvailabilityBlock
Kapacitní blok terapeuta — definuje kdy a kde může terapeut pracovat.
| Pole | Typ | Popis |
|---|---|---|
therapist_id |
string | Terapeut |
room_id |
string | Místnost |
date |
date | Datum (nebo start recurring) |
start_time, end_time |
string | HH:MM |
slot_duration_minutes |
number | Délka slotu (default 50 min) |
service_types |
array | Povolené výkony (prázdné = vše) |
is_recurring |
boolean | Opakující se blok |
recurrence_pattern |
enum | daily, weekly, biweekly, monthly |
recurrence_days |
string | JSON array dnů ["monday","tuesday"] |
recurrence_start_date |
date | Začátek opakování |
recurrence_end_date |
date | Konec opakování (null = neomezené) |
is_public |
boolean | Viditelné pro klienty v portálu |
Client
Evidence klientů.
| Pole | Typ | Popis |
|---|---|---|
first_name, last_name |
string | Jméno |
email, phone |
string | Kontakty |
date_of_birth |
date | Datum narození |
segment |
enum | standard, vip, child, couple |
category_ids |
array | Přiřazené kategorie |
is_active |
boolean | Aktivní/archivovaný |
Service
Výkony nabízené klinikou.
| Pole | Typ | Popis |
|---|---|---|
name |
string | Název výkonu |
duration_minutes |
number | Délka trvání |
price |
number | Cena v Kč |
vat_rate |
enum | 0%, 12%, 21% |
is_online |
boolean | Online sezení |
allow_multiple_therapists |
boolean | Párová terapie |
pohoda_code |
string | Kód pro export do účetního SW Pohoda |
Therapist
Evidence terapeutů.
| Pole | Typ | Popis |
|---|---|---|
name |
string | Jméno |
email |
string | E-mail (pro notifikace) |
color |
string | Barva v kalendáři |
microsoft_calendar_id |
string | ID kalendáře v MS Outlook |
Room
Místnosti kliniky.
| Pole | Typ | Popis |
|---|---|---|
name |
string | Název |
color |
string | Barva v kalendáři |
capacity |
number | Kapacita (0 = neomezená, 1 = ordinace) |
PaymentLog
Záznamy o platbách.
| Pole | Typ | Popis |
|---|---|---|
client_id |
string | Klient |
booking_id |
string | Rezervace |
calendar_event_id |
string | Událost |
amount |
number | Částka v Kč |
payment_method |
enum | credit, package, card, cash, transfer, demo, gateway |
status |
enum | pending, paid, failed, refunded |
gateway_transaction_id |
string | ID transakce platební brány |
Podpůrné entity
| Entita | Účel |
|---|---|
ClientCredit |
Kreditní účet klienta (zůstatek) |
CreditTransaction |
Pohyby na kreditním účtu (topup, payment, refund) |
ClientPackage |
Zakoupený balíček sezení klienta |
ServicePackage |
Definice balíčků (10+1 terapií, cena, platnost) |
ClientCategory |
Barevné kategorie klientů |
RoomCategory |
Kategorie místností |
ServiceCategory |
Kategorie výkonů |
AppointmentStatus |
Konfigurovatelné stavy termínů |
CalendarSettings |
Provozní hodiny, granularita slotů |
NotificationSettings |
Šablony e-mailů a SMS (HTML/rich-text) |
NotificationLog |
Deduplication log odeslaných notifikací |
ActivityLog |
Auditní log všech akcí |
OtpCode |
Jednorázové kódy pro přihlášení klientů |
SystemSettings |
Globální nastavení: odesílatel, testovací režim |
PaymentSettings |
Storno lhůty, splatnost, min. hodiny před termínem |
Invoice |
Faktury |
DemoUser |
Demo účty pro přepínání rolí |
Vztahy mezi entitami
Client ──────────────── Booking ─────── CalendarEvent
│ │ │
├── ClientCredit │ Therapist
│ └── CreditTransaction Room
│ │
├── ClientPackage ── ServicePackage
│
└── ClientCategory
CalendarEvent ──── PaymentLog
│
CreditTransaction
Poznámka: Base44 NoSQL databáze nepotvrzuje referenční integritu — vztahy jsou udržovány pouze na aplikační úrovni pomocí ID referencí.