- Порезанный
- 26 июня 2026 г. в 16:43 UTC
- Автор
- Kamo
- Обещать
- 5c26d02
Самый маленький отгрузочный кусочек каталога Фазы-2 (doc 02 §6): цепочка происхождения ImgDat -> MlosSourceDocument -> MlosRateSheetVersion и неизменяемая эффективная дата Версия позвоночника с разрешением Point-in-time. Substrate-first (без MLOSCatalogService) Автор; это неизменный каталог-PK фонд DecisionInput будет FK. Новый pkg com.kamo.z.shared.mlos.catalog: - MlosInvestor (регистрация per-org; Short code unique per org), MlosSourceDocument (тонкий) anotation over locked ImgDat; soft-FK img dat id, never restores bytes, doc 02 §6.4. - MlosRateSheetVersion: неизменяемая версия с эффективной датировкой (effective from/until window, заменяет self-FK, sequence no, status lifecycle, source document FK, cutoff time @PostLoad snapshot + @PreUpdate diff: замораживание Ценовые/идентификационные коды, разрешены только DRAFT->ACTIVE, ACTIVE->SUPERSED, ACTIVE->RETIRED и однократное закрытие effective until. Нет триггера DB (CRDB не может доработать до 24.3). - EffectiveVersionResolver (gated mlos.catalog.enabled): разрешение «точка-в-время» Версия, чье окно [effective from, effective until] CONTAINS оценено as of, никогда «Последний ряд» присоединяется; броски на эффективном перекрытии окна (глубокая защита, док 02 §6.5/§8.1). 6 enums **************** RateSheetVersionStatus) + 3 РЕПО. Base = BaseUuidEntity (doc 02 §6.1); orgId=Long @JsonSerialize (ToString) (проверено кодом: Organization.id является уникальным rowid, а не «UUID» дока 02. 17 тестов зеленых (6 решающих точек-в-времени) + 11 часов охраны. KamoInitializer добавляет каталог repo pkg + ux rate sheet version active Уникальный неперекрывающийся индекс.