Design an OOP model for Myntra's wishlist, cart, and checkout system with a flexible discount/coupon engine.
addToWishlist(userId, productId) / moveToCart(userId, productId)applyDiscount(cartId, couponCode) → validates and appliesgetCartTotal(cartId) — returns itemised + discounted totalcheckout(cartId, paymentMethod) → reserves inventory and creates orderWishlist, Cart, CartItem, DiscountRule, DiscountEngine, Order
Add "save for later" — moves item from cart to a saved list without deleting.