From feb5a67d6a8b4db8ec2f9e53fe219bf1cfae0cbe Mon Sep 17 00:00:00 2001 From: Akulij Date: Mon, 5 May 2025 19:32:55 +0300 Subject: [PATCH] handle reservedate: callback --- cmd/app/main.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/cmd/app/main.go b/cmd/app/main.go index d487ddd..8b31623 100644 --- a/cmd/app/main.go +++ b/cmd/app/main.go @@ -172,6 +172,28 @@ func handleCallbackQuery(bc BotController, update tgbotapi.Update) { notifyPaid(bc, reservation) sendMessage(bc, update.CallbackQuery.From.ID, bc.GetBotContent("post_payment_message")) + } else if strings.HasPrefix(update.CallbackQuery.Data, "reservedate:") { + datetoken := strings.Split(update.CallbackQuery.Data, ":")[1] + eventid, err := strconv.ParseInt(datetoken, 10, 64) + if err != nil { + log.Printf("Error parsing date token: %s\n", err) + return + } + taken, _ := bc.CountReservationsByEventID(eventid) + if taken >= seatscnt { + sendMessage(bc, user.ID, bc.GetBotContent("soldout_message")) + return + } + // event, _ := bc.GetEvent(eventid) + reservation, err := bc.CreateReservation(update.CallbackQuery.From.ID, eventid, "Не указано") + if err != nil { + log.Printf("Error creating reservation: %s\n", err) + return + } + + bc.db.Model(&user).Update("state", "enternamereservation:"+strconv.FormatInt(reservation.ID, 10)) + sendMessage(bc, user.ID, bc.GetBotContent("reserved_message")) + } else if user.IsEffectiveAdmin() { handleAdminCallback(bc, update, user) }