package tg import ( tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" ) type MessageId int64 // Implementing the interface provides // way to define what message will be // sent to the side of a user. type Sendable interface { SendConfig(SessionId, *Bot) (*SendConfig) SetMessage(*Message) } type Errorer interface { Err() error } // The type is used as an endpoint to send messages // via bot.Send . type SendConfig struct { // Message with text and keyboard. Message *tgbotapi.MessageConfig // The image to be sent. Photo *tgbotapi.PhotoConfig Document *tgbotapi.DocumentConfig Location *tgbotapi.LocationConfig Error error } type MessageMap map[string] *Message // Convert to the bot.Api.Send format. func (config *SendConfig) ToApi() tgbotapi.Chattable { switch { case config.Message != nil : return *(config.Message) case config.Photo != nil : return *(config.Photo) case config.Location != nil : return *(config.Location) case config.Document != nil : return *(config.Document) } return nil }