IInlineMenuConverter
using PRTelegramBot.Models.CallbackCommands;
using PRTelegramBot.Models.InlineButtons;
namespace PRTelegramBot.Interfaces
{
/// <summary>
/// Интерфейс конвертера InlineCallback.
/// </summary>
public interface IInlineMenuConverter
{
/// <summary>
/// Преобразовать данные в команду.
/// </summary>
/// <param name="callbackData">
/// Данные, которые будут отправлены боту при нажатии на кнопку.
/// Максимальная длина: 1–64 байта.
/// Обычно используется для идентификации команды или передачи аргументов.
/// </param>
/// <returns>InlineCallback или null.</returns>
InlineCallback GetCommandByCallbackOrNull(string callbackData);
/// <summary>
/// Преобразовать данные в команду.
/// </summary>
/// <typeparam name="T">Тип команды.</typeparam>
/// <param name="callbackData">
/// Данные, которые будут отправлены боту при нажатии на кнопку.
/// Максимальная длина: 1–64 байта.
/// Обычно используется для идентификации команды или передачи аргументов.
/// </param>
/// <returns>InlineCallback или null.</returns>
InlineCallback<T> GetCommandByCallbackOrNull<T>(string callbackData)
where T : TCommandBase;
/// <summary>
/// Сгенерировать callbackData из InlineCallback.
/// </summary>
/// <param name="inlineCallback">Кнопка обработки данных.</param>
/// <returns>Сконвертированная кнопка обработки данных.</returns>
string GenerateCallbackData(InlineCallback inlineCallback);
/// <summary>
/// Сгенерировать callbackData из InlineCallback.
/// </summary>
/// <typeparam name="T">Тип кнопки.</typeparam>
/// <param name="inlineCallback">Кнопка обработки данных.</param>
/// <returns>Сконвертированная кнопка обработки данных.</returns>
string GenerateCallbackData<T>(InlineCallback<T> inlineCallback)
where T : TCommandBase;
}
}
Last updated