You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
1.7 KiB
Go

package article
type LianV1Article struct {
Id uint64 `xorm:"<- not null" ` //id
Title string `xorm:"<- not null" json:"title"` //标题
Type uint64 `xorm:"<- not null"` //类型
Ctime int64 `xorm:"<- not null ctime" ` // 发布时间
Brief string `xorm:"<- not null" json:"brief"` //简介
Content string `xorm:"<- not null" json:"content"` //内容
Stocks string `xorm:"<- not null" json:"stocks"` //股票代码
}
func NewLianV1Article(cfg ...articleConfiguration) *LianV1Article {
article := &LianV1Article{}
articleConfigurations(cfg).apply(article)
return article
}
type articleConfiguration func(*LianV1Article)
type articleConfigurations []articleConfiguration
func (cfg articleConfigurations) apply(article *LianV1Article) {
for _, c := range cfg {
c(article)
}
}
func WithArticleId(arg uint64) articleConfiguration {
return func(article *LianV1Article) {
article.Id = arg
}
}
func WithArticleTitle(arg string) articleConfiguration {
return func(article *LianV1Article) {
article.Title = arg
}
}
func WithArticleType(arg uint64) articleConfiguration {
return func(article *LianV1Article) {
article.Type = arg
}
}
func WithArticleCtime(arg int64) articleConfiguration {
return func(article *LianV1Article) {
article.Ctime = arg
}
}
func WithArticleBrief(arg string) articleConfiguration {
return func(article *LianV1Article) {
article.Brief = arg
}
}
func WithArticleContent(arg string) articleConfiguration {
return func(article *LianV1Article) {
article.Content = arg
}
}
func WithArticleStocks(arg string) articleConfiguration {
return func(article *LianV1Article) {
article.Stocks = arg
}
}