KamoCRM

Lock-policy version (WORM) + period options + extension fees (Phase-2 Slice 9)

Featurekamo-shared-library
Shipped
26 ஜூன், 2026 அன்று 8:55 PM UTC
Author
Kamo
Commit
7f1aa3d

The investor lock-policy layer — third effective-dated WORM version spine (after rate-sheet + guideline), keyed per investor; feeds the future RateLock/RateCommitmentEngine. - MlosLockPolicyVersion (mlos_lock_policy_version, WORM): investorId FK, productId(null=all), effective_from/until, sequence_no, supersedes_id self-FK, status, source_document_id FK, + worst_case_window_days, relock_allowed, relock_worst_case, floatdown_allowed, floatdown_fee_price, floatdown_min_improvement_bps, cutoff_time. Same @PostLoad/@PreUpdate partial-mutability WORM. - MlosLockPeriodOption (mlos_lock_period_option): lock_period_days, default_flag (one default per policy via partial-unique). MlosLockExtensionFee (mlos_lock_extension_fee): extension_days, fee_price (raw BigDecimal), increment_type (FeeIncrementType), max_cumulative_days. Value-children. - LockPolicyVersionStatus + FeeIncrementType enums. 3 repos. LockPolicyVersionResolver (gated mlos.catalog.enabled): point-in-time window, never latest-row, throws on overlap (mirrors EffectiveVersionResolver). 17 tests green (6 resolver + 11 WORM). KamoInitializer adds ux_lock_policy_version_active (one open ACTIVE per org+investor) + ux_lock_period_default (one default lock period per policy). No review workflow (faithful mirror of the already-reviewed Slice-1/7 WORM+resolver spine).

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing