Výkony a služby
Cesta: /Services
Komponenta: src/pages/Services.jsx
CRUD správa výkonů (terapeutických služeb) nabízených klinikou.
Pole výkonu
| Pole | Popis |
|---|---|
| Název | Zobrazovaný název (např. „Individuální terapie 50 min") |
| Délka trvání | Počet minut — použito při výpočtu volných slotů |
| Cena | Základní cena v Kč (bez DPH) |
| Sazba DPH | 0 %, 12 %, nebo 21 % (+ důvod osvobození vat_exempt_reason) |
| Online | Příznak online sezení — ovlivňuje generování Meet linku |
| Vyžaduje místnost | requires_room |
| Párová terapie | Umožňuje přiřadit více terapeutů k jednomu termínu |
| Pohoda kód | Kód pro export do účetního systému Pohoda (viz Externí závislosti) |
| Zobrazovat v online portálu | online_booking_enabled — když false, služba je jen interní/admin |
| Povolené kategorie klientů | allowed_client_category_ids — segmentace: kdo smí službu vidět a rezervovat |
| Hradí pojišťovna | is_insurance — klient za výkon neplatí, fáze platby se přeskočí; při nedostavení se účtuje stornopoplatek |
| Lze prodat jako voucher | voucher_enabled — povolí vystavení dárkového voucheru na tento výkon |
Segmentace a viditelnost v online rezervaci
Ověřený fakt — nová pole řídí, zda a komu se služba nabízí ve veřejném rezervačním portálu:
online_booking_enabled = false→ služba se v portálu vůbec nezobrazí (jen interní/admin objednání).allowed_client_category_idsneprázdné → službu vidí jen přihlášený klient, který je alespoň v jedné z uvedených kategorií klientů. Prázdné pole = viditelné pro všechny.
Vazba terapeut–služba (TherapistService)
Kdo kterou službu nabízí, řídí entita TherapistService (denní/týdenní limity sezení, případně vlastní cena terapeuta). Používá se i při skládání nabídky ve veřejném portálu pro „obecné" bloky dostupnosti.
Balíčky služeb
Správa balíčků sezení (ServicePackage) — např. „10+1 terapií":
| Pole | Popis |
|---|---|
| Typ | single_service nebo multi_service (více výkonů v jednom balíčku) |
| Počet sezení | Základní počet + bonusová sezení |
| Cena balíčku | Cena za celý balíček |
| Platnost | Počet dní od zakoupení (null = neomezená) |
| Sazba DPH | vat_rate (0 / 12 / 21 %) + vat_exempt_reason |
| Až po první terapii | requires_first_visit (default ano) — balíček se klientovi nabídne až po realizované terapii |
| Povolené skupiny klientů | allowed_client_category_ids (prázdné = všichni) |
Vazba na AvailabilityBlock
Výkony je možné přiřadit konkrétním kapacitním blokům terapeutů — terapeut pak nabízí jen vybrané výkony v daném čase. Prázdný seznam výkonů v bloku znamená „vše povoleno".
Výkony hrazené pojišťovnou
Změna logiky (export 19. 8. 2026): výkon s is_insurance se páruje se skupinou klientů, která má rovněž is_insurance (ClientCategory). Pro takovou kombinaci platí:
- rezervace vznikne rovnou s
payment_method = 'insurance', klientovi se neposílá výzva k platbě - u termínu je navíc stav „Nedostavil se – storno pojišťovna" (
no_show_insurance), po kterém se klientovi účtuje stornopoplatek zeSystemSettings.insurance_cancellation_fee - stornopoplatek klient hradí přes veřejnou stránku
/storno?token=…, viz Platby