- Spegnimento
- 26 giugno 2026 alle ore 16:43 UTC
- Autore
- Kamo
- Impegno
- 5c26d02
La più piccola fetta spedibile del catalogo Phase-2 (doc 02 §6): la catena di provenienza ImgDat -> MlosSourceDocument -> MlosRateSheetVersione e l'immutabile efficace versione della colonna vertebrale con risoluzione puntuale. Substrate-first (no MLOSCatalogService) scrittore ancora); questo è l'immutabile-catalogo-PK fondazione DecisionInput sarà FK a. Nuovo pkg com.kamo.z.shared.mlos.catalog: - MlosInvestor ( registro per-org; short code Unique per org), MlosSourceDocument (penso annotazione sopra bloccato ImgDat; soft-FK img dat id, mai ri-store byte, doc 02 §6.4). - MlosRateSheetVersione: versione effettiva immutabile (efficaci da/finestra, supersedi auto-FK, sequence no, stato lifecycle, source document FK, cutoff time) con un app-layer parziale-mutabilità WORM guard (@PostLoad snapshot + @PreUpdate diff): congela Cols di identità/prezzi, consente solo DRAFT->ACTIVE, ACTIVE->SUPERSED, ACTIVE->RETIRED e la chiusura di scrittura di efficace until. Nessun trigger DB (CRDB non può finalizzare a 24.3). - EfficaceVersionResolver (gated mlos.catalog.enabled): risoluzione puntuale — la versione il cui [efficace dall'efficace until] finestra CONTAINS priced as of, mai un "l'ultima riga" si uniscono; getta su sovrapposizione effettiva della finestra (profondità, doc 02 §6.5/§8.1). 6 numeri. TassoSheetVersionStatus) + 3 repos. Base = BaseUuidEntity (doc 02 §6.1); orgId=Long @JsonSerialize(ToString) (Codice-verified: Organization.id è unico rowid, non doc 02 "UUUID"). 17 test verdi (6 punti di risoluzione in tempo + 11 WORM guard). KamoInitializer aggiunge il catalogo repo pkg + il ux rate sheet version active Indice parziale-unique no-overlap.