правки
This commit is contained in:
@@ -22,19 +22,20 @@ type PurchaseChannelInput struct {
|
||||
}
|
||||
|
||||
type SelectChannelsForPurchase struct {
|
||||
ProjectID string
|
||||
ProjectTitle string
|
||||
ProjectTelegramID int64
|
||||
ProjectUsername string
|
||||
ProjectStatus string
|
||||
CreativeID string
|
||||
CreativeTitle string
|
||||
Channels []PurchaseChannelInput
|
||||
CurrentPage int
|
||||
InvalidUsernames []string
|
||||
Duplicates []string // дубликаты каналов
|
||||
ParsingErrors []ParseError // ошибки парсинга с предложениями
|
||||
BackState bot.State
|
||||
ProjectID string
|
||||
ProjectTitle string
|
||||
ProjectTelegramID int64
|
||||
ProjectUsername string
|
||||
ProjectStatus string
|
||||
CreativeID string
|
||||
CreativeTitle string
|
||||
Channels []PurchaseChannelInput
|
||||
CurrentPage int
|
||||
InvalidUsernames []string
|
||||
Duplicates []string // дубликаты каналов
|
||||
ParsingErrors []ParseError // ошибки парсинга с предложениями
|
||||
OptionalDetailsState *PurchaseOptionalDetails // сохранённое состояние деталей
|
||||
BackState bot.State
|
||||
}
|
||||
|
||||
// ParseError представляет ошибку парсинга с предложением исправления
|
||||
@@ -216,14 +217,23 @@ func (s *SelectChannelsForPurchase) HandleCallback(b *bot.Bot, u *echotron.Updat
|
||||
}
|
||||
|
||||
// Каналы уже резолвлены в HandleMessage, переходим к следующему шагу
|
||||
b.SetState(&PurchaseOptionalDetails{
|
||||
ProjectID: s.ProjectID,
|
||||
ProjectTitle: s.ProjectTitle,
|
||||
CreativeID: s.CreativeID,
|
||||
CreativeTitle: s.CreativeTitle,
|
||||
Channels: s.Channels,
|
||||
BackState: s.BackState,
|
||||
}, bot.EditMessage)
|
||||
// Если есть сохранённое состояние - используем его, иначе создаём новое
|
||||
var optionalDetails *PurchaseOptionalDetails
|
||||
if s.OptionalDetailsState != nil {
|
||||
optionalDetails = s.OptionalDetailsState
|
||||
// Обновляем каналы на случай если они изменились
|
||||
optionalDetails.Channels = s.Channels
|
||||
} else {
|
||||
optionalDetails = &PurchaseOptionalDetails{
|
||||
ProjectID: s.ProjectID,
|
||||
ProjectTitle: s.ProjectTitle,
|
||||
CreativeID: s.CreativeID,
|
||||
CreativeTitle: s.CreativeTitle,
|
||||
Channels: s.Channels,
|
||||
BackState: s,
|
||||
}
|
||||
}
|
||||
b.SetState(optionalDetails, bot.EditMessage)
|
||||
|
||||
case "back_to_select":
|
||||
s.Enter(b, bot.EditMessage)
|
||||
|
||||
Reference in New Issue
Block a user