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  }