using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace GmRelay.Bot.Features.Sessions.CreateSession.Wizard;

public sealed record WizardClubOption(Guid ClubId, string Name);

public interface ITelegramWizardMessenger
{
    Task<long> EditMessageTextAsync(long chatId, int? messageThreadId, long messageId, string text, Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup keyboard, CancellationToken ct);
    Task<long> SendGroupMessageAsync(long chatId, int? messageThreadId, string text, Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup keyboard, CancellationToken ct);
    Task AnswerCallbackAsync(string callbackId, string? text, CancellationToken ct);
    Task<IReadOnlyList<WizardClubOption>> GetGmClubsAsync(long ownerTelegramId, CancellationToken ct);
}
