전제
1) 소비자는 주문/결제 창에서 주문상품의 개수 만큼 쿠폰을 행사할 수 있다.
2) 아울러 행사 가능한 쿠폰 개수는 쿠폰함에 보관되어 있는 쿠폰 개수보다 항상 같거나 적다.
3) 쿠폰함에서는
registered-programs/user/{userid}로 api를 쏘면서
보유중인 쿠폰 개수를 보여주고 있다.
--
코드전략
1) basketmodel 속에서 registeredProgramsItems filed를 추가한다
--> 모델 일부 수정
2) 주문상품에 따라 쿠폰함 속의 각 쿠폰의 products를 조회하면서
행사 가능한 쿠폰을 식별한다.
이때 행사 가능한 쿠폰을 시각적으로 선명하게 조치하고 행사 불가능한 쿠폰은 disable 조치
3) 행사가능한 쿠폰에 provider를 붙여서 해당 변수를 +- 가능하게 제어한다.
해당 변수는 보유 쿠폰 수와 주문상품 개수보다 적거나 같다.
아울러 <아래 그림 참조> 갯수가 변화할때마다 basket에 담긴 items elements가
registeredProgramItems로 이전한다.