Skip to content

On-boarding klienta

Komponenta: src/components/client/ClientOnboarding.jsx
Vstup: e-mailový odkaz /client?action=onboarding&client_id=…, nebo automaticky při první rezervaci / uplatnění voucheru u klienta bez dokončeného profilu
Role: Veřejné (klient)

Ověřený fakt — proces registrace a udělení digitálních souhlasů (VOP, GDPR) s ověřením podpisu jednorázovým kódem (OTP). Odpovídá modulu 1. Klientská správa a on-boarding v zadání.

Kdy se spustí

  • Klient klikne na odkaz z e-mailu „výzva k dokončení onboardingu" (sendNotification akce onboarding_invite) → ClientPortal v režimu onboarding.
  • Klient bez is_profile_complete se pokusí rezervovat termín nebo uplatnit voucher → onboarding se vloží před rezervaci (viz VoucherRedeem).

Průběh (3 kroky)

flowchart TD
    A[Krok 1 — Základní údaje] --> B[Krok 2 — Souhlasy + podpis]
    B --> C[Krok 3 — OTP ověření]
    C --> D[Uložení na Client + ActivityLog + potvrzovací e-mail]

    A -.povinné.-> A1["jméno, příjmení, telefon, datum narození\n(adresa nepovinná; e-mail zamčený)"]
    B -.povinné.-> B1["souhlas VOP + souhlas GDPR + podpis\n(marketing, dotazníky = nepovinné)"]
    C -.-> C1["6místný kód na e-mail/telefon\npotvrzuje souhlasy i podpis"]
  1. Základní údaje — jméno, příjmení, telefon, datum narození (povinné), adresa (nepovinná). E-mail je jen ke čtení.
  2. Souhlasy + podpis:
    • VOP (povinné) — text načten z entity LegalDocument (key: 'vop'), rozklikávací; při chybějícím dokumentu se použije zabudovaný fallback text.
    • GDPR (povinné) — LegalDocument (key: 'gdpr'), stejná logika.
    • Marketing a Dotazníky spokojenosti — nepovinné.
    • Digitální podpis — komponenta SignaturePad (canvas → data URL).
  3. OTP ověření — před uložením se odešle 6místný kód (clientAuth akce request_otp); zadáním kódu klient stvrzuje souhlasy i podpis. V demo režimu se kód zobrazí na obrazovce.

Co se uloží

Po ověření OTP (clientAuth akce verify_otp) se na entitu Client zapíše:

  • profilová data (jméno, telefon, datum narození, adresa),
  • is_profile_complete: true,
  • vop_accepted + vop_accepted_at + vop_version (verze dokumentu),
  • gdpr_consent_accepted + gdpr_consent_at,
  • marketing_consent_accepted (+ _at), survey_consent_accepted (+ _at),
  • signature_data, signature_at, signature_verified_by_otp: true.

Následně:

  • ActivityLog — záznam onboarding_completed s detaily (verze VOP, souhlasy, čas podpisu, kontakt).
  • sendNotification akce onboarding_completed — potvrzovací e-mail klientovi se seznamem souhlasů a VOP jako PDF přílohou (viz Externí závislosti).

Související