Skip to content

9. Otázky pro zadavatele

Tyto otázky nelze zodpovědět ze zdrojového kódu. Jsou nezbytné pro správné naplánování migrace.


Otázky k provozu a datům

O1 — Objem dat Kolik záznamů je aktuálně v produkci?

  • Počet klientů, termínů (CalendarEvent), rezervací (Booking)?
  • Toto ovlivní strategii migrace dat a výkon DB indexů.

O2 — Aktivní provoz Je aplikace aktuálně v produkci s reálnými klienty, nebo je to prototyp / pilotní provoz?

  • Pokud produkce: kdy je vhodné okno pro cutover (minimální provoz)?

O3 — Data export z Base44 Má Base44 platforma funkci exportu všech entit do JSON nebo CSV?

  • Bez exportu dat nelze přejít na vlastní backend.

Otázky k funkčnosti

O4 — SMS notifikace — ZODPOVĚZENO KÓDEM Jsou SMS notifikace v produkci reálně odesílány?

  • Změna oproti minulému exportu: odesílání SMS přes SmsManager je nyní v sendNotification implementováno, včetně šablon pro platby, storna, vratky a storno poplatky.
  • Zbývá určit: je sms_enabled v produkci zapnuté, jaké je sender ID a kdo hradí kredit brány?
  • Pozor: OTP pro přihlášení telefonem se stále vrací v response jako demo_code (viz R1) — SMS se posílají u notifikací, ne u OTP.

O5 — Google Meet linky Jsou Meet linky generované aplikací funkční?

  • Kód generuje URL ve formátu https://meet.google.com/xxx-xxxx-xxx deterministicky z booking ID.
  • Odvozeno: tyto linky pravděpodobně nejsou skutečné Google Meet místnosti — mohou být jen placeholder.
  • Plánuje se integrace se skutečným Google Meet API nebo jiným video systémem?

O6 — Stripe a platební brána Je Stripe aktuálně nakonfigurován a používán?

  • Knihovny jsou v package.json, platební metoda gateway v kódu existuje.
  • Jaký je aktuální stav integrace? Klíče, webhooks?

O7 — MS Outlook sync Jak je nakonfigurován Outlook connector?

  • Který MS účet/tenanta je připojen?
  • Mají všichni terapeuti microsoft_calendar_id vyplněno?
  • Je sync obousměrný, nebo jen z aplikace do Outlooku?

O8 — Fakturace a Pohoda — ZODPOVĚZENO KÓDEM, otevřený je provozní stav Jsou doklady (Invoice) a export do Pohody v aktivním použití?

  • Změna oproti minulému exportu: export do Pohody je implementován (syncPohodaExport, shared/pohodaXml.ts), funkce generateInvoice byla nahrazena generatePurchaseDocument + generováním dokladů v shared/documentGeneration.ts.
  • Zbývá určit: je pohoda_export_enabled zapnuté proti reálnému mServeru? Proběhl pohodaTestRun a je pohoda_new_rules_enabled v produkci true?
  • Kdo a jak často export spouští — ručně z admina, nebo plánovaně?
  • Jaké je mapování středisek (centre_id) a účetních kódů výkonů (pohoda_code)?

Otázky k rolím a přístupu

O9 — Role systém — ČÁSTEČNĚ ZODPOVĚZENO Role jsou nyní čitelné z permissions.js: admin, admin-klientske, klientske, finance (nová) a therapist.

  • Zbývá: kdo přiděluje role a kdo smí zakládat účty personálu?
  • Má role finance vidět zdravotní/kontaktní údaje klientů, nebo jen finanční data?

O10 — TherapistManagement — ČÁSTEČNĚ ZODPOVĚZENO Mohou se terapeuti přihlásit do admin rozhraní, nebo mají přístup pouze přes klientský portál?

  • Finální export zavádí samostatný portál terapeuta (/TherapistPortal) s OTP přihlášením přes portal_user_email + portal_access_enabled. Terapeut zde spravuje jen vlastní bloky dostupnosti.
  • Zbývá: vztah tohoto portálu k admin rozhraní — může terapeut i do admina, nebo výhradně do portálu terapeuta?

O11 — Účty personálu a demo přepínač — ZMĚNA LOGIKY Entita DemoUser je nyní zdrojem přihlášení personálu (OTP přes StaffGate), ale DemoUserSwitcher v kódu zůstal.

  • Je přepínač rolí v produkci dostupný? Kdokoli s admin přístupem si tím může změnit roli.
  • Má se přejmenovat entita i stránka (DemoUserManagement → správa zaměstnanců), aby název odpovídal funkci?

Otázky k migraci

O12 — Cílový backend Jaká technologie se preferuje pro vlastní backend?

  • PHP (Petrovo CMS ekosystém), Node.js, nebo jiné?
  • To zásadně ovlivní způsob přepisu Deno serverless funkcí.

O13 — Databáze PostgreSQL, MySQL, nebo jiné? Preference pro ORM nebo přímé SQL dotazy?

O14 — Zachovat Base44 paralelně? Je možné provozovat Base44 a nový systém paralelně po dobu migrace?

  • Nebo je nutný okamžitý přechod?

O15 — Klientský portál — URL Na jaké URL má být klientský portál dostupný?

  • Aktuálně je na stejné doméně jako admin (/client).
  • Má to být separátní subdoména / aplikace, nebo zachovat current strukturu?

Otázky ke kódové kvalitě

O16 — Telefonie OptimCall — ČÁSTEČNĚ ZODPOVĚZENO V nastavení přibyla karta TelephonySettings (telephony_* v SystemSettings) včetně URL webhooku, ale backendový endpoint pro příjem hovorů v exportu není.

  • Existuje webhook na straně ústředny, nebo se má teprve implementovat?
  • Jaký formát událostí ústředna posílá a jak se ověřuje telephony_webhook_secret?
  • Má se v novém backendu řešit i odchozí volání (telephony_api_url, telephony_api_key)?

O17 — three.js a react-leaflet V package.json jsou závislosti three (3D grafika) a react-leaflet (mapy).

  • Jsou tyto knihovny skutečně používány, nebo jsou to nevyužité závislosti?
  • Pokud nepoužívané: lze je bezpečně odstranit a snížit bundle size?

Otázky k novým modulům (finální export)

O18 — Vouchery: uplatnění bez serverové kontroly Uplatnění voucheru (/redeem) zapisuje stav redeemed přímo z prohlížeče klienta (Voucher.update), bez serverové validace.

  • Je akceptovatelné riziko souběžného uplatnění stejného kódu (race condition)?
  • Má uplatnění voucheru procházet přes serverovou funkci (jako clientBooking)?

O19 — On-boarding: PDF VOP a diakritika Potvrzení on-boardingu generuje VOP jako PDF ručně sestaveným %PDF-1.4 řetězcem v Deno funkci.

  • Tento generátor nepodporuje diakritiku ani formátování. Je to pro produkci dostatečné, nebo se PDF přesune do PHP (mPDF/TCPDF)?
  • Má být podepsaný dokument (podpis klienta) také součástí PDF archivu?

O20 — Právní dokumenty: verzování souhlasů Na klienta se ukládá vop_version, se kterou souhlasil.

  • Má systém při vydání nové verze VOP vyžádat od stávajících klientů nový souhlas? Jak se to má promítnout do rezervačního flow?

O21 — Segmentace služeb Služby lze omezit na allowed_client_category_ids a skrýt z online portálu (online_booking_enabled).

  • Kdo přiřazuje klienty do kategorií a podle jakých pravidel (VIP, páry, děti)?
  • Mají segmentované služby být pro nepřihlášené zcela skryté (aktuální chování), nebo viditelné se zámkem?

Otázky k účetní vrstvě (export 19. 8. 2026)

O22 — Pojišťovny a storno poplatek Přibyl stav no_show_insurance, příznak is_insurance na výkonu i skupině klientů a jednotný insurance_cancellation_fee.

  • Je stornopoplatek opravdu jednotný pro všechny pojišťovny a výkony, nebo se má lišit?
  • Kdo vymáhá nezaplacený stornopoplatek a co se stane, když klient odkaz /storno neuhradí?
  • Účtuje se pojišťovně samotný výkon nějakou dávkou, nebo NEO řeší jen stornopoplatky?

O23 — Doklady z pokladny (document_source = POKLADNA) Systém rozlišuje doklady vystavené NEO a doklady z pokladního systému, které se do Pohody neexportují.

  • Jaký pokladní systém se používá a kdo do NEO zadává cashdesk_document_number?
  • Jak se hlídá, že se doklad nezaúčtuje dvakrát (z pokladny i z NEO)?

O24 — Zálohové účetnictví kreditu Dobití kreditu vzniká jako nedaňové potvrzení (non_tax_confirmation) a přijatá záloha, výnos se uznává až při realizaci služby (onServiceRealized).

  • Je tento model odsouhlasen s účetní/daňovým poradcem?
  • Jak se řeší nevyčerpaný kredit po skončení spolupráce (promlčení, vrácení)?

O25 — Převody kreditu mezi klienty CreditTransaction nově zná transfer_out / transfer_in.

  • Za jakých podmínek smí personál kredit převést (rodina, pár, chybný zápis)?
  • Vzniká při převodu doklad, nebo jde jen o interní přesun?

O26 — Migrace historických dat Řada nových polí je popsána jako „prázdné u historických záznamů" (event_id, accounting_source, pohoda_export_status, client_number).

  • Mají se historická data dopočítat (backfill), nebo zůstanou needitovaná?
  • Od jakého data se má účtovat podle nových pravidel?

O27 — Balíčky po první návštěvě ServicePackage.requires_first_visit je defaultně true — balíček je viditelný až po první realizované terapii.

  • Platí to pro všechny balíčky, nebo se mají startovací balíčky nabízet hned?
  • Počítá se „první návštěva" jen ze stavu completed, nebo i z uhrazeného no-show?

O28 — Kapacita v portálu terapeuta Therapist.portal_can_override_capacity dovolí terapeutovi rezervovat online výkony mimo naplánovanou kapacitu.

  • Kdo toto oprávnění přiděluje a má se hlídat maximální počet takto vzniklých rezervací?