Files
Deal/src/telegram-service/Deal.Telegram/Telegram/ITelegramClientFactory.cs
T
Rustam Khalimov 9e07568ddd Инициализировать репозиторий «Дейл»
Первый коммит: модульный монолит ядра (.NET 10) и gRPC-сервисы
ai/ml/telegram, фронтенд Vue 3/Vite/Tailwind, документация (ТЗ,
инструкция пользователя, техдокументация, код-стайл), бэклог,
скрипты развёртывания и архив прототипа LeadRadar.
2026-09-11 02:50:17 +03:00

24 lines
1.5 KiB
C#

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