Přeskočit na obsah

Dostupné

Doménový model

Model je napsaný dřív než příjem dat záměrně. Rozhodnutí, co je platný stav a co platná hodnota, se dělá jednou — a je levnější ho udělat, dokud v databázi nic není.

Umístění
src/progresus_isir/domain/ — claim, classification, provenance, identifiers
Stavy
10, s výslovnou tabulkou povolených přechodů a odvozenou množinou koncových
Klasifikace
tristate: ano / ne / neznámo
Kontroly
ruff, mypy --strict a jednotkové testy v just quality

Stavy nesou české právní názvy

Hodnoty jsou prihlasena, zjistena, poprena, poprena_castecne, incidencni_spor, odmitnuta, vzata_zpet a dál až po rizeni_skonceno. Anglické ekvivalenty se nevymýšlejí, protože ztrácejí přesnost: popřena není totéž co odmítnuta, to je jiný výsledek podle jiného paragrafu.

Přechod, který není v tabulce, vyhodí výjimku, místo aby se tiše ignoroval. Přechod, který rejstřík provedl a model o něm neví, je nová informace o zdroji — a jediná užitečná reakce je všimnout si jí.

Funkce nad stavy, ne metody na objektu

Přechod je funkce dvou stavů, ne metoda měnitelného objektu. Stav pohledávky žije v append-only seznamu událostí a tohle je pravidlo, které projektor aplikuje při jeho přehrávání.

Tenhle tvar je přímý důsledek volby event sourcingu. Model, který by držel měnitelný objekt, by přehrání logu udělal nepohodlným a tím i vzácným.

IČO se kontroluje, ne důvěřuje

IČO se normalizuje a ověřuje standardním českým mod-11 schématem: váhy 8 až 2 nad prvními sedmi číslicemi. Nestojí to nic a odmítne to celou třídu chyb OCR dřív, než se z nich stane špatně spárovaný věřitel.

Provenience je součástí typu, ne komentářem u něj — hodnotu bez dokumentu a stránky v modelu nejde sestrojit.

Kde to v repozitáři žije

Souvisí

Zpět na sekci Roadmapa