Protected ReadonlydbStaticinstanceThe process default: built from each dependency's own instance().
Optionaldescription?: stringOptionaleffectiveFrom?: InstantWhen this version becomes effective. Defaults to now() at the DB
layer when omitted. Pass a future Temporal.Instant to schedule a
change.
OptionalfixedFeeAmount?: BigNumberOptionallabel?: stringOptionalmatcher?: MatcherOptionalvariableFeeBps?: BigNumberReturns fee rules visible to this customer:
customerId IS NULL)type='ADMIN', customerId=input.customerId)type='CUSTOMER', customerId=input.customerId)Pass types: ["CUSTOMER"] from a controller to restrict to the customer's
own writable slice. Write paths always operate on the CUSTOMER slice
regardless of this filter.
Customer-tier CRUD over
product_fee_rule. Always operates on thetype='CUSTOMER'slice. Customer rules can only ADD markup (admin baseline stacks beneath); negativefixedFeeAmount/variableFeeBpsare rejected withINVALID_FEE_RULEon bothcreate()andupdate().Identity / version split: see ProductFeeRuleAdminService for the full description. Edits insert a new version row and re-point
currentVersionIdin one transaction.Internal admins must use
ProductFeeRuleAdminServiceinstead.