package senders import ( "fmt" "gopkg.in/tucnak/telebot.v2" "time" ) type TgSender struct { bot *telebot.Bot } func NewTgSender(tgToken string) (*TgSender, error) { bot, err := telebot.NewBot(telebot.Settings{ Token: tgToken, Poller: &telebot.LongPoller{Timeout: 10 * time.Second}, }) if err != nil { return nil, fmt.Errorf("error creating Telegram bot: %w", err) } return &TgSender{bot: bot}, nil } func (tg *TgSender) SendLead(data LeadData) error { text, err := generateTextFromTemplate(data.TemplateData, toClientTgTemplate) if err != nil { return err } chat := data.To.(int64) _, err = tg.bot.Send(telebot.ChatID(chat), text, &telebot.SendOptions{ ParseMode: telebot.ModeHTML, }) if err != nil { return fmt.Errorf("error sending Telegram message: %w", err) } return nil } func (tg *TgSender) Name() string { return "telegram" }