Skip to content

3. Mapa stránek a navigace

Diagram navigace

graph TD
    LOGIN["StaffGate → StaffLogin (OTP personálu)"] --> ROOT
    ROOT["/ → Kalendář"] --> CAL[Kalendář]
    ROOT --> CLI[Klienti]
    ROOT --> PAY[Platby]
    ROOT --> STA[Statistiky]
    ROOT --> SET["Nastavení ▾\n10 položek"]
    ROOT --> CLIENT["/client — Klientský portál"]

    CAL --> CALDET["EventDialog"]
    CLI --> CLIDET["/clients/:id"]
    SET --> SETPAGES["Kalendář · Provozní hodiny\nNotifikace · Výkony · Terapeuti\nFakturace · Platby · Log aktivit\nVouchery · Právní dokumenty"]
    CLIENT --> OTP["OTP přihlášení"]

    ROOT --> THERAPIST["/TherapistPortal — Portál terapeuta"]
    REDEEM["/redeem — Uplatnění voucheru (veřejné)"]
    INVOICE["/invoice — Doklad (veřejné, přes token)"]
    STORNO["/storno — Úhrada storno poplatku (veřejné)"]

Tabulka rout

Admin rozhraní

Ověřený fakt — ze src/App.jsx a src/pages.config.js:

Cesta (URL) Komponenta Popis Role
/ Calendar Hlavní stránka — vizuální kalendář Admin
/Calendar Calendar Alias pro hlavní stránku Admin
/Clients Clients Seznam klientů (tabulka + vyhledávání) Admin
/clients/:id ClientDetail Detail klienta (záložky) Admin
/AvailabilityManagement AvailabilityManagement Kapacitní bloky terapeutů Admin
/Services Services CRUD správa výkonů/služeb Admin
/RoomOccupancyStats RoomOccupancyStats Statistiky obsazenosti místností Admin
/PaymentLogs PaymentLogs Přehled všech plateb Admin
/ActivityLog ActivityLog Auditní log akcí Admin
/TherapistManagement TherapistManagement Správa terapeutů Admin
/NotificationSettings NotificationSettings Šablony e-mailů a SMS Admin
/CalendarSettings CalendarSettings Provozní hodiny, granularita slotů Admin
/OperatingHoursSettings OperatingHoursSettings Detailní nastavení provozní doby Admin
/AppointmentStatusSettings AppointmentStatusSettings Správa stavů termínů Admin
/ClientCategorySettings ClientCategorySettings Barevné kategorie klientů Admin
/RoomCategorySettings RoomCategorySettings Kategorie místností Admin
/InvoiceSettings InvoiceSettings Nastavení fakturace Admin
/PaymentSettingsPage PaymentSettingsPage Nastavení plateb (lhůty, storno) Admin
/DemoUserManagement DemoUserManagement Správa účtů zaměstnanců a jejich rolí (dříve „demo účty") Admin only
/Documentation Documentation Vestavěná dokumentace Admin
/VoucherManagement VoucherManagement Správa dárkových voucherů (viz Vouchery) Admin
/LegalDocumentsSettings LegalDocumentsSettings Editace VOP/GDPR dokumentů (viz Právní dokumenty) Admin
/StaffLogin StaffLogin Přihlášení zaměstnance (OTP) — zobrazuje se místo obsahu, dokud není přihlášen Veřejné

Změna logiky (export 19. 8. 2026): admin rozhraní je nově chráněné. V App.jsx je vše kromě veřejných rout zabaleno do layout route <StaffGate />; bez přihlášeného zaměstnance se místo aplikace vykreslí StaffLogin. Dříve bylo admin rozhraní přístupné bez autentizace na úrovni aplikace.

Dále: duplicitní registrace /PaymentSettingsPage byla odstraněna a /TherapistPortal i /invoice se přesunuly mezi veřejné routy (portál terapeuta má vlastní OTP, doklad se otevírá přes token z e-mailu).

Odvozeno — většina admin stránek se registruje automaticky přes pages.config.js (auto-generováno z src/pages/). App.jsx navíc zaregistruje část rout explicitně.

Klientský portál (veřejné)

Cesta (URL) Komponenta Popis
/client ClientPortal Vstupní bod klientského portálu
/client?payment=1&... ClientPortal Platební flow (query parametry)
/client?action=onboarding&client_id=… ClientPortal On-boarding klienta z e-mailového odkazu (viz On-boarding)
/redeem?code=… VoucherRedeem Veřejné uplatnění voucheru přes QR/URL (viz Vouchery)
/invoice?token=… InvoiceView Zobrazení/tisk dokladu — přístup pouze přes unikátní token (backend getPublicInvoice)
/storno?token=… StornoLanding Úhrada storno poplatku (pojišťovna) z odkazu v e-mailu/SMS
/TherapistPortal TherapistPortal Portál terapeuta — vlastní OTP přihlášení (viz Portál terapeuta)

Odvozeno — interní režimy portálu jsou řešeny stavem uvnitř ClientPortal komponenty (mode: public / login / dashboard / onboarding), nikoliv React Router routami. Výchozí režim bez přihlášení je veřejný rezervační portál (PublicBookingPortal, viz Veřejný rezervační portál).

Stránky bez Layout wrapperu

Tyto stránky nemají horní navigaci:

  • /client — klientský portál (jiný UX kontext)
  • /redeem — uplatnění voucheru (veřejné, samostatný kontext)
  • /invoice — zobrazení dokladu (print-friendly)
  • /storno — úhrada storno poplatku (veřejné)
  • /TherapistPortal — portál terapeuta (vlastní kontext i autentizace)
  • * — PageNotFound