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); } }