Files
tgex-backend/telegram_bot/screens/main_menu.go
Artem Tsyrulnikov 2fb8c83041 new telegram bot
2025-12-30 19:50:15 +03:00

58 lines
1.6 KiB
Go

package screens
import (
"example.com/m/bot"
"github.com/NicoNex/echotron/v3"
)
type MainMenu struct{}
func (s *MainMenu) Enter(b *bot.Bot, mode bot.RenderMode) {
keyboard := bot.Keyboard(
bot.Row(bot.Button("Мои проекты", "my_projects"), bot.Button("Поддержка", "support")),
bot.Row(bot.Button("Закупы", "placements"), bot.Button("Дашборд", "dashboard")),
)
b.Render(tgexAbout, keyboard, mode)
}
func (s *MainMenu) HandleCallback(b *bot.Bot, u *echotron.Update) {
switch u.CallbackQuery.Data {
case "my_projects":
b.SetState(&MyProjects{BackState: &MainMenu{}}, bot.EditMessage)
case "support":
// b.SetState(&Support{}, bot.NewMessage)
case "placements":
// b.SetState(&Placements{}, bot.NewMessage)
case "dashboard":
// b.SetState(&Dashboard{}, bot.NewMessage)
default:
s.Enter(b, bot.NewMessage)
}
return
}
func (s *MainMenu) HandleMessage(b *bot.Bot, u *echotron.Update) {
if u.Message.Text == "/start login" {
b.SetState(&Login{}, bot.NewMessage)
return
}
return
}
func (s *MainMenu) Handle(b *bot.Bot, u *echotron.Update) {
b.SetState(&MainMenu{}, bot.NewMessage)
return
}
const tgexAbout = `
TGEX — Telegram-бот для покупки и продажи рекламы без ЛС и ручных таблиц.
• Внутренний счёт и безопасные сделки
• Фиксация цен, дат и форматов
• Автоматические отчёты
• Повторные закупки в пару кликов
Комиссия — 7%. Без скрытых платежей.`