package telegram import ( "log/slog" tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" ) type TelegramMessageSender struct { bot *tgbotapi.BotAPI logger *slog.Logger } func NewTelegramMessageSender(botToken string, logger *slog.Logger) (*TelegramMessageSender, error) { bot, err := tgbotapi.NewBotAPI(botToken) if err != nil { return nil, err } return &TelegramMessageSender{ bot: bot, logger: logger, }, nil } func (s *TelegramMessageSender) Send(text string, chatId int64, replyToMessageId *int) error { resultMsg := tgbotapi.NewMessage(chatId, text) if replyToMessageId != nil { resultMsg.ReplyToMessageID = *replyToMessageId } _, err := s.bot.Send(resultMsg) if err != nil { s.logger.Error("Failed to send message to tg bot", "error", err) return err } return nil }