Skip to content

Veřejný rezervační portál

Komponenta: src/pages/PublicBookingPortal.jsx
Vstup: výchozí režim /client pro nepřihlášeného návštěvníka
Role: Veřejné (bez přihlášení lze procházet a začít rezervaci)

Ověřený fakt — veřejné rozhraní, kde si i nepřihlášený zájemce vybere službu a spustí rezervační průvodce (ClientBooking). Odpovídá modulu 2. Rezervační systém (front-end pro klienty) v zadání. Přihlášení se vyžádá až ve chvíli potvrzení rezervace.

Postavení v portálu

ClientPortal má stavový automat mode; výchozí režim bez přihlášení je public → renderuje PublicBookingPortal. Z hlavičky lze přejít na přihlášení (onLoginRequest → mode 'login') nebo na dashboard (onDashboard → mode 'dashboard'), pokud je klient přihlášen.

Výběr služby a filtrování

Zobrazí se ServicePicker se službami, které mají reálnou kapacitu a jsou povolené pro online rezervaci. Filtr (useMemo) kombinuje:

  1. Service.is_active = true — jen aktivní služby.
  2. Service.online_booking_enabled ≠ false — služba smí do online portálu.
  3. Reálná kapacita — existuje budoucí veřejný AvailabilityBlock (is_public = true), který službu pokrývá:
    • blok s vyplněnými service_types → přímo tyto služby;
    • obecný blok (bez service_types) → služby, které daný terapeut nabízí přes TherapistService (is_active).
  4. Segmentace — pokud má služba allowed_client_category_ids, zobrazí se jen přihlášenému klientovi, který je alespoň v jedné z povolených kategorií. Neomezené služby vidí každý.

Odvozeno — segmentované služby jsou pro nepřihlášené návštěvníky skryté (bez client se restrikce vyhodnotí jako „nezobrazit").

Rezervace

Po výběru služby se vykreslí ClientBooking (společný průvodce s klientským portálem) — výběr terapeuta, data, slotu a potvrzení. Přihlášení / on-boarding se vyžádá až v rámci tohoto průvodce.

Související