- Ya
- 26 Juni 2026, 14:24 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 19c46f8
New com.kamo.z.shared.mlos.config tenant-config foundation (doc 04 §3): - LenderProfile (root, UNIQUE per MORTGAGE marketId) — soft-FKs locked Organization (Long) + CommerceMarket (UUID) by id. NOTE marketId is UUID (CommerceMarket.id is gen_random_uuid; doc 04's 'Long FK' is a code-verified error, same case as AiDecision.loanFileId). profileVersion for replay. - LicensingEntry (per-state COMPANY licensing, distinct from member StewardLicense) — licenseType 8-value enum; stateCode ISO-3166-2; NO stored status, computed from effective/expiry dates via isEffectiveOn() (doc 04 §7.3). - LicensingResolver @Component (gated mlos.config.enabled): isTenantLicensed( profile, state, type) date-based; uncovered jurisdiction => false (act blocked). - Config-entity base pattern: manual @Id UUID + @Embedded EmbRecordState (NOT BaseUuidEntity — its timestamps would collide; doc 04 §3). 4 LicensingResolverTest green (TDD). Indexes entity-declared (UNIQUE market_id). Deferred: **************** singletons; MlosActivationService + SecurityService boot self-heal.