Represents a payable amount and its constituent components as well as potential alternatives and rewards.
The totals include multiplication by quantity.
A collection of price components in the final price after application of the Pricing Context.
Keeping this separate from the PriceComposition to make it clear that the break down has already been calculated and shouldn't be modified.
NB! The components in the breakdown have not been multiplied by the quantity. Each component carries its quantity.
Represents a calculated component.
When composing it will add a copy of the matched component.
Value of the new component will be calculated based on the value of the selected component and the Factor.
Values from the template will override values on the copied component.
Encoding this as protobuf for easy caching in distributed system.
The context could be expensive to calculate.
It may require lookup current currency rates, current subscription, time based discounts, etc...
The pricing context also contains materialised dynamic values for the current user context.
Query context used to look up pricing rules.
Not using the PriceContext, because creep in the lookup context
should not bleed into the runtime context.
Tags for the category of the product or servivce being priced.
The WellknownPricingTags is only for convenience to share values
of well known tags accross service boundaries.
Represents a transformation of the matched component.
The matched component will be mutated with the values from the Template.
Only fields specified in the field mask will be overriden.