bot changes
This commit is contained in:
@@ -18,11 +18,12 @@ type PurchaseChannelInput struct {
|
||||
}
|
||||
|
||||
type SelectChannelsForPurchase struct {
|
||||
WorkspaceID string
|
||||
ProjectID string
|
||||
CreativeID string
|
||||
Channels []PurchaseChannelInput
|
||||
BackState bot.State
|
||||
WorkspaceID string
|
||||
ProjectID string
|
||||
ProjectTitle string
|
||||
CreativeID string
|
||||
Channels []PurchaseChannelInput
|
||||
BackState bot.State
|
||||
}
|
||||
|
||||
func (s *SelectChannelsForPurchase) Enter(b *bot.Bot, mode bot.RenderMode) {
|
||||
@@ -30,34 +31,35 @@ func (s *SelectChannelsForPurchase) Enter(b *bot.Bot, mode bot.RenderMode) {
|
||||
}
|
||||
|
||||
func (s *SelectChannelsForPurchase) renderChannelSelection(b *bot.Bot, mode bot.RenderMode) {
|
||||
text := "<b>➕ Создание закупа</b>\n\n"
|
||||
text += "<b>Шаг 2/2: Добавление каналов</b>\n\n"
|
||||
text := "<i>… › Создание › Каналы</i>\n\n"
|
||||
text += "<b>Создание закупа</b>\n\n"
|
||||
text += "<b>Шаг 2/2:</b> Добавление каналов\n\n"
|
||||
|
||||
var buttons [][]echotron.InlineKeyboardButton
|
||||
|
||||
if len(s.Channels) == 0 {
|
||||
text += `Добавьте каналы для размещения рекламы.
|
||||
text += `Добавьте каналы для размещения рекламы
|
||||
|
||||
<i>Отправьте username канала (без @)</i>
|
||||
Отправьте username канала (без @)
|
||||
Например: <code>channel_name</code>
|
||||
|
||||
После добавления всех каналов нажмите "Создать закуп"`
|
||||
После добавления всех каналов нажмите <b>Создать закуп</b>`
|
||||
} else {
|
||||
text += fmt.Sprintf("<b>Добавлено каналов: %d</b>\n\n", len(s.Channels))
|
||||
text += fmt.Sprintf("Добавлено каналов: <b>%d</b>\n\n", len(s.Channels))
|
||||
|
||||
for i, ch := range s.Channels {
|
||||
channelText := fmt.Sprintf("%d. @%s", i+1, ch.Username)
|
||||
channelText := fmt.Sprintf(" %d. @%s", i+1, ch.Username)
|
||||
if ch.PlannedCost != nil {
|
||||
channelText += fmt.Sprintf(" (%.0f₽)", *ch.PlannedCost)
|
||||
channelText += fmt.Sprintf(" — %.0f₽", *ch.PlannedCost)
|
||||
}
|
||||
text += channelText + "\n"
|
||||
}
|
||||
|
||||
text += "\n<i>Добавьте еще каналы или создайте закуп</i>"
|
||||
text += "\nДобавьте еще каналы или создайте закуп"
|
||||
|
||||
// Кнопка создания закупа (доступна только если есть каналы)
|
||||
buttons = append(buttons, bot.Row(
|
||||
bot.Button("✅ Создать закуп", "create"),
|
||||
bot.Button("● Создать закуп", "create"),
|
||||
))
|
||||
}
|
||||
|
||||
@@ -95,9 +97,10 @@ func (s *SelectChannelsForPurchase) HandleCallback(b *bot.Bot, u *echotron.Updat
|
||||
case "back":
|
||||
// Возвращаемся к выбору креатива
|
||||
b.SetState(&AddPurchase{
|
||||
WorkspaceID: s.WorkspaceID,
|
||||
ProjectID: s.ProjectID,
|
||||
BackState: s.BackState,
|
||||
WorkspaceID: s.WorkspaceID,
|
||||
ProjectID: s.ProjectID,
|
||||
ProjectTitle: s.ProjectTitle,
|
||||
BackState: s.BackState,
|
||||
}, bot.EditMessage)
|
||||
|
||||
case "create":
|
||||
@@ -159,16 +162,18 @@ func (s *SelectChannelsForPurchase) createPurchase(b *bot.Bot, jwt string) {
|
||||
}
|
||||
|
||||
// Показываем успешное создание
|
||||
successText := fmt.Sprintf(`✅ <b>Закуп создан!</b>
|
||||
successText := fmt.Sprintf(`<i>… › Создание › Готово</i>
|
||||
|
||||
<b>ID:</b> %s
|
||||
<b>Креатив:</b> %s
|
||||
<b>Каналов:</b> %d
|
||||
<b>Закуп создан</b>
|
||||
|
||||
Закуп создан и готов к работе.`, purchase.ID, purchase.CreativeID, len(purchase.Channels))
|
||||
▪ <b>ID:</b> %s
|
||||
▪ <b>Креатив:</b> %s
|
||||
▪ <b>Каналов:</b> %d
|
||||
|
||||
Закуп создан и готов к работе`, purchase.ID, purchase.CreativeID, len(purchase.Channels))
|
||||
|
||||
b.Edit(successText, bot.Keyboard(
|
||||
bot.Row(bot.Button("✅ Готово", "done")),
|
||||
bot.Row(bot.Button("● Готово", "done")),
|
||||
))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user