flamingo.me/flamingo-commerce/v3@v3.11.0/search/interfaces/graphql/searchdto/promotiondto.go (about) 1 package searchdto 2 3 import ( 4 "flamingo.me/flamingo-commerce/v3/search/domain" 5 ) 6 7 type ( 8 // PromotionDTO contains promotion data exposed via graphql 9 PromotionDTO struct { 10 promotion *domain.Promotion 11 } 12 ) 13 14 // WrapPromotion of search domain with PromotionDTO 15 func WrapPromotion(promotion *domain.Promotion) *PromotionDTO { 16 return &PromotionDTO{promotion: promotion} 17 18 } 19 20 // Title of the promotion 21 func (p *PromotionDTO) Title() string { 22 return p.promotion.Title 23 } 24 25 // Content of the promotion 26 func (p *PromotionDTO) Content() string { 27 return p.promotion.Content 28 29 } 30 31 // URL of the promotion 32 func (p *PromotionDTO) URL() string { 33 return p.promotion.URL 34 35 } 36 37 // Media of the promotion 38 func (p *PromotionDTO) Media() *domain.Media { 39 if len(p.promotion.Media) > 0 { 40 return &p.promotion.Media[0] 41 } 42 return nil 43 }