package internal import "fmt" type ChannelMessage struct { ID int Message string Medias []ChannelMessageMedia } type ChannelMessageMedia struct { Photo string Video string } func NewChannelMessage(id int) *ChannelMessage { return &ChannelMessage{ID: id} } func (c *ChannelMessage) WithMessage(message string) *ChannelMessage { c.Message = message return c } func (c *ChannelMessage) WithPhoto(assetID int64, ext string) *ChannelMessage { c.Medias = append(c.Medias, ChannelMessageMedia{Photo: fmt.Sprintf("%d.%s", assetID, ext)}) return c } func (c *ChannelMessage) WithVideo(video string) *ChannelMessage { c.Medias = append(c.Medias, ChannelMessageMedia{Video: video}) return c }