namespace Deal.Telegram.Telegram; /// /// Фабрика клиентов Telegram для сессий тенантов (план Task 9, Telegram/ClientFactory.cs). /// /// Создаёт для сессии тенанта по ключам приложения и байтам сохранённой /// сессии (или пустой — новый вход). Интерфейс — seam для тестов: тесты регистрируют фейковую /// фабрику, реальный сеть Telegram не трогает до первого вызова. /// public interface ITelegramClientFactory { /// /// Создаёт клиент Telegram для сессии тенанта. /// /// api_id приложения Telegram (настройка tgKeys тенанта, из тела запроса). /// api_hash приложения Telegram. /// /// Байты сохранённой сессии WTelegramClient (расшифрованная копия файла data/sessions/<tenant>.session) /// либо null — новая сессия (нет файла или ключи приложения сменились). /// /// Клиент, готовый к ConnectAsync/логину. public ISessionClient Create(int apiId, string apiHash, byte[]? storedSession); }