Resitel je clenstvi uctu, firma z ARES, prepinani jazyku schovane

Resitel uz neni vlastni zaznam spojeny s uctem pres e-mail: je to
clenstvi uctu ve firme a jeho ID je ID uctu. Popisek, kapacita, externi
ID a zapnuti visi na clenstvi, takze clovek ve dvou firmach je v kazde
jinak a spravce firmy ho vypne jen u sebe. Odebrani z firmy odebere jen
clenstvi. Stara data se pri startu jednou prevedou (migratePeople.ts),
vcetne odkazu v ticketech, skupinach, automatizacich, akcich a widgetech.
Sprava lidi v zalozce Lide zaklada ucty, pozvanka uz nema volbu resitele.

Zalozeni firmy z registru ARES: hledani podle IC nebo nazvu, dotazeni
IC, DIC, sidla a pravni formy, vyber soucasnych statutarnich zastupcu
a prokury, ucty spravce firmy s nahradnim e-mailem IC-poradi@placeholder.cz.
Vychozi rozlozeni dashboardu bez resitele neobsahuje list.myTickets.

Prepinani jazyku je docasne schovane (MULTILANG_ENABLED), web je cesky.
Dokumentace aktualizovana.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
JiriUhlir
2026-09-09 13:09:35 +02:00
co-authored by Claude Fable 5.1
parent 6eed909a0d
commit bc6508e1f3
41 changed files with 1415 additions and 328 deletions
+20
View File
@@ -158,6 +158,26 @@ Dve veci, na kterych to stoji:
souboru znamena dve rozdilna schemata se stejnym cislem. Oprava je vzdy novy
soubor.
### Stara kolekce `person`
Kolekce `person` je **jen pozustatek**: resitel byval vlastni zaznam
(`ppl_...`) spojeny s uctem pres e-mail, dnes je resitel clenstvi uctu
(viz [06-tickety.md](06-tickety.md)) a nic se do ni nezapisuje. Prevod
nedela SQL migrace, ale `src/data/migratePeople.ts` pri startu
z `bootstrapData`, az po nacteni ticketu a automatizaci, a jen kdyz v kolekci
neco je - druhy start uz nic nedela. Plati pro vsechny tri rezimy uloziste.
| Krok |
| ------------------------------------------------------------------------------------------------- |
| ke kazdemu zaznamu se najde ucet podle e-mailu, nebo se zalozi s nahodnym heslem a clenstvim `role_agent` |
| popisek, kapacita a externi ID se prenesou na clenstvi |
| stare ID se prepise na ID uctu v ticketech (`assigneeId`, `resolvedById`), stromech automatizaci, skupinach, telech akci a zdrojich vlastnich widgetu |
| prevedene zaznamy se smazou, do logu jde `[migrace] resitele -> ucty: ...` |
Chyba jednoho zaznamu jen zaloguje, zaznam zustane a migrace se k nemu vrati
pri dalsim startu. Historicke udalosti v logu ticketu si stara ID nechavaji,
neprepisuji se.
## Sifrovani pristupovych udaju
`src/db/secretBox.ts`, AES-256-GCM.