- Shipped
- 26 Juni 2026 pukul 16.43 UTC
- Author
- Kamo
- Commit
- 5c26d02
Potongan terkecil dari katalog Phase-2 (doc 02 = 6): rantai provenance ImgDat - > MlosSourceDocument - > MlosRateSheetVersion dan efektiveimmutable-tanggal tulang belakang versi dengan titik-in-waktu resolusi. Sub strategi - pertama (tidak ada MLOSCatalogService penulis belum); ini adalah impmutable- katalog -PK fondasi DecisionInput akan FK ke. Pkg com.kamo.z.shared.mlos.catalog baru: - MlosInvelor (registry per-org; short _ code unik per org), MlosSourceDocument (tipis noltation over locked ImgDat; soft-FK img _ dat _ id, never re-store bytes, doc 02 # 6.4). - MlosRateSheetVersion: versi efektive- tanggal (effective _ from / until window, supersedes self-FK, sequence _ no, status lifecycle, source _ documents FK, cutoff _ time) with app- layer partial-mutability wordman guard (@ PostLoads snapshot + @ PreUpdate diff): membeku Berharga / identitas, hanya memungkinkan DRAF- > AKTIVE, AKTIVE- > SUPERSEDED, AKTIVE- > RETIRED dan tulisan-sekali dekat efektif sampai. Tidak ada pemicu DB (CRDB tidak bisa menyelesaikan sampai 24.3). - EffectiveVersionResolver (gated mlos.catat.enabled): titik-in- time resolusi - the versi yang [efektif _ from, efektif _ until) jendela CONTAINS harga _ as _ of, tidak pernah "baris terakhir" bergabung; melempar di efektive- jendela tumpang tindih (pertahanan-in-kedalaman, doc 02 # 6,5 / # 8.1). - 6 enums * * * * * * * * * * * * * * * * * RateSheetVersionStatus) + 3 repos. Dasar = BaseUidEntity (doc 02 = 6.1); orgId = Long @ JsonSerialize (ToString) (code-verified: Organisasi. id adalah unik _ rowid, bukan doc 02 's "UUID"). 17 tes hijau (6 titik resolver -in-time + 11 WORM Guard). KamoInitializer menambahkan katalog repo + ux _ rate _ sheet _ version _ active Parsial - unik no- overlap indeks.