KamoCRM

LLPA adjustments + value sets + condition evaluator (Phase-2 Slice 4)

Featurekamo-shared-library
Ya
26 Juni 2026, 18:32 UTC
Mwandishi
Kamo
Ahadi ya
5fcfdd9

The LLPA/adjustment layer + the deterministic predicate engine for §8.1 step-4 matching ("an adjustment matches iff ALL its conditions are satisfied"). - MlosPriceAdjustment (mlos_price_adjustment): rateSheetVersionId FK, productId (null=all), adjustmentGroup, operation (ADDITIVE|MULTIPLICATIVE), value, stackOrder, capValue, label. - MlosAdjustmentCondition (mlos_adjustment_condition): priceAdjustmentId FK, attribute, operator **************** numLow/numHigh, valueSetId FK. - MlosValueSet (mlos_value_set) + MlosValueSetMember (mlos_value_set_member): named categorical sets; the doc 02 §6.2 platform-owned exception (organizationId nullable + platformOwned flag on the SET only; member carries no orgId mirror — ownership via the set, no drift surface). - AdjustmentConditionEvaluator (ungated @Component) + ScenarioFacts: numeric ops vs num_low/high, set ops vs resolved members; missing fact → no match; SET OPS FAIL CLOSED on empty/null member set (a dangling soft-FK value set never silently matches everyone) and null-resolver-safe (no NPE). 9 **************** green. Adversarially reviewed (2-agent workflow): fixed 2 HIGH evaluator bugs (NOT_IN fail-open on empty set; NPE on null resolver) + dropped the redundant member orgId mirror per the review. Pricing numbers raw BigDecimal (Slice-3 correction). KamoInitializer adds the value-set ownership CHECK.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila kitu kinaingia kwenye tovuti yako mwenyewe. Anza kwenye mpango wa bure na usome ukurasa huu tena katika mwezi mmoja.

Kuwa Huru MileleMtazamo wa bei