package article type ArticleDto struct { EventId uint64 `json:"eventId"` Title string `json:"title"` Class string `json:"class"` ReleaseDate string `json:"releaseDate"` ReleaseTime string `json:"releaseTime"` Stocks string `json:"stocks"` Brief string `json:"brief"` MainBoard int `json:"mainBoard"` GrowthBoard int `json:"growthBoard"` Content string `json:"content"` Unlock bool `json:"unlock"` } func NewArticleDto(cfg ...articleDtoConfiguration) *ArticleDto { articleDto := &ArticleDto{} articleDtoConfigurations(cfg).apply(articleDto) return articleDto } type articleDtoConfiguration func(*ArticleDto) type articleDtoConfigurations []articleDtoConfiguration func (cfg articleDtoConfigurations) apply(articleDto *ArticleDto) { for _, c := range cfg { c(articleDto) } } func WithArticleDtoEventId(arg uint64) articleDtoConfiguration { return func(dto *ArticleDto) { dto.EventId = arg } } func WithArticleDtoTitle(arg string) articleDtoConfiguration { return func(dto *ArticleDto) { dto.Title = arg } } func WithArticleDtoClass(arg string) articleDtoConfiguration { return func(dto *ArticleDto) { dto.Class = arg } } func WithArticleDtoReleaseDate(arg string) articleDtoConfiguration { return func(dto *ArticleDto) { dto.ReleaseDate = arg } } func WithArticleDtoReleaseTime(arg string) articleDtoConfiguration { return func(dto *ArticleDto) { dto.ReleaseTime = arg } } func WithArticleDtoStocks(arg string) articleDtoConfiguration { return func(dto *ArticleDto) { dto.Stocks = arg } } func WithArticleDtoBrief(arg string) articleDtoConfiguration { return func(dto *ArticleDto) { dto.Brief = arg } } func WithArticleDtoContent(arg string) articleDtoConfiguration { return func(dto *ArticleDto) { dto.Content = arg } }