using BotPages.Core.Context;
namespace BotPages.Core.Abstractions;
///
/// Ключ для идентификации пользовательской сессии.
///
public readonly record struct CompositeSessionKey(string AdapterId, string ChatId, string? UserId)
{
///
/// Создает ключ сессии из UpdateContext.
///
public static CompositeSessionKey FromUpdate(UpdateContext update)
{
return new CompositeSessionKey(
update.Adapter.Id,
update.Chat.Id,
update.User.Id);
}
///
/// Получить ключ для определенного адаптера.
///
public CompositeSessionKey ForAdapter(string adapterId)
{
return new CompositeSessionKey(adapterId, ChatId, UserId);
}
}