Первый коммит: модульный монолит ядра (.NET 10) и gRPC-сервисы ai/ml/telegram, фронтенд Vue 3/Vite/Tailwind, документация (ТЗ, инструкция пользователя, техдокументация, код-стайл), бэклог, скрипты развёртывания и архив прототипа LeadRadar.
24 lines
1.5 KiB
C#
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/<tenant>.session)
|
|
/// либо null — новая сессия (нет файла или ключи приложения сменились).
|
|
/// </param>
|
|
/// <returns>Клиент, готовый к ConnectAsync/логину.</returns>
|
|
public ISessionClient Create(int apiId, string apiHash, byte[]? storedSession);
|
|
}
|