flamingo.me/flamingo-commerce/v3@v3.11.0/cart/interfaces/graphql/dto/discounts.go (about) 1 package dto 2 3 import ( 4 "context" 5 6 "flamingo.me/flamingo-commerce/v3/cart/domain/cart" 7 ) 8 9 // CartAppliedDiscounts DTO for cart.AppliedDiscounts 10 type CartAppliedDiscounts struct { 11 discounts cart.AppliedDiscounts 12 } 13 14 // Items getter 15 func (d *CartAppliedDiscounts) Items() []cart.AppliedDiscount { 16 return d.discounts.Items() 17 } 18 19 // ByCampaignCode getter and wrapper 20 func (d *CartAppliedDiscounts) ByCampaignCode(campaignCode string) *CartAppliedDiscounts { 21 return &CartAppliedDiscounts{discounts: d.discounts.ByCampaignCode(campaignCode)} 22 } 23 24 // ByType getter and wrapper 25 func (d *CartAppliedDiscounts) ByType(filterType string) *CartAppliedDiscounts { 26 return &CartAppliedDiscounts{discounts: d.discounts.ByType(filterType)} 27 } 28 29 // CartAppliedDiscountsResolver resolves discounts for items 30 type CartAppliedDiscountsResolver struct{} 31 32 // ForItem resolves for cart Items 33 func (*CartAppliedDiscountsResolver) ForItem(ctx context.Context, item *cart.Item) (*CartAppliedDiscounts, error) { 34 return &CartAppliedDiscounts{discounts: item.AppliedDiscounts}, nil 35 } 36 37 // ForShippingItem resolves for shipping Items 38 func (*CartAppliedDiscountsResolver) ForShippingItem(ctx context.Context, item *cart.ShippingItem) (*CartAppliedDiscounts, error) { 39 return &CartAppliedDiscounts{discounts: item.AppliedDiscounts}, nil 40 }