KamoCRM

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

Featurekamo-shared-library
Shipped
26 ஜூன், 2026 அன்று 6:32 PM UTC
Author
Kamo
Commit
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.

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