Rename product to product_id
Flatten the pricing rules
Remove calculating price based on deal names, redundant
Add object that is responsible for extracting the pricing rule for a product
When buying 3E, D is free
Extract unit price, rename pricing strategy
Refactor, split best offer and normal price calculator
Rename calculate on the best offer calculator to discount
Update tests to match the new work
Add simple combo discounts