# Zniżki na RC+y ## Wymagania ## Diagramig ```ruby= class DiscountApplicabilityChecker def call check_user_constraint check_user_constraint check_user_constraint end def check_user_constraint disocunt_constraints.where() end end ``` ```plantuml @startuml class Discount { + type + value + prefix + enabled + discountable_type + discountable_id / future } class DiscountableConstraint { + discount_id + constrainable_type + constrainable_id } class OrderItem { + orderable_id + orderable_type + value : decimal } Reservation --{ OrderItem Discount -- DiscountableConstraint ``` #### DiscountableConstraints ```csvpreview {header="true"} discount_id, constrainable_type, constrainable_id 1,User,5 1, Restaurant, 1 1,FestivalEditon,1 1,Degustation, null 2,DeliveryFee, null ``` #### OrderItems ```csvpreview {header="true"} id, orderable_type, orderable_id, qty, unit_price, value, related_id, reserv_id 1, Menu, 5, 2, 200.0, 400.0, NULL, 567 2, CrossSell, 21, 1, 50.0, 50.0, NULL, 567 3, ReservationExtra, 31, 1, 30.0, 30.0, NULL, 567 4, Discount, 55, 1, -40.0, -40.0, 5, 567 5, ```