Skip to content

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_ids neprá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 ze SystemSettings.insurance_cancellation_fee
  • stornopoplatek klient hradí přes veřejnou stránku /storno?token=…, viz Platby