#1. N quantity for A product for fixed price. #2. A combination of different products for Fixed price.
#I have created few Interfaces to implement by concrete classes, so that future extentions are smooth.
#Promotion is difefrent from Shopping Kart, Shopping Kart is different from Item. ( A different module can be developed for its mangement for CRUD operations. )
Promotion Engine is the class thkes the shopping Karft and Promotions as arguments and Apply Promotions defined in Promotion class.
#Currently No impleemntation for Customer info, which can be added as Aggregation. #Promotions can be designed Dynamically. ( Whihc can be further saved in DB and fetch as Future extension. )