Limit rules — identity row, scoped to a route or (aggregate) to a
product category. Tier shape mirrors
product_activation_rule (see that file for the (type, customer_id) tier
table).
Mutable on currentVersionId, matcherHash, and deletedAt only.
Every change to the matcher, status, priority, any limit column, or
label/description inserts a new product_limit_rule_version row and
re-points currentVersionId (and re-stamps matcherHash) in the same
transaction.
Duplicate-matcher detection is enforced by
product_limit_rule_unique_tuple — see productActivationRuleTable
for the rationale; the same denormalization pattern applies here.
Limit rules — identity row, scoped to a route or (aggregate) to a product category. Tier shape mirrors product_activation_rule (see that file for the (type, customer_id) tier table).
Mutable on
currentVersionId,matcherHash, anddeletedAtonly. Every change to the matcher, status, priority, any limit column, or label/description inserts a newproduct_limit_rule_versionrow and re-pointscurrentVersionId(and re-stampsmatcherHash) in the same transaction.Duplicate-matcher detection is enforced by
product_limit_rule_unique_tuple— seeproductActivationRuleTablefor the rationale; the same denormalization pattern applies here.