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