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
sendNotificationimplementováno, včetně šablon pro platby, storna, vratky a storno poplatky. - Zbývá určit: je
sms_enabledv 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-xxxdeterministicky 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
gatewayv 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_idvyplně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), funkcegenerateInvoicebyla nahrazenageneratePurchaseDocument+ generováním dokladů vshared/documentGeneration.ts. - Zbývá určit: je
pohoda_export_enabledzapnuté proti reálnému mServeru? ProběhlpohodaTestRuna jepohoda_new_rules_enabledv produkcitrue? - 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
financevidě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řesportal_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
/stornoneuhradí? - Úč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í?