Почистить комментарии от упоминаний процесса

Удалены <remarks>, <summary> сжаты до короткой фразы, вырезаны
ссылки на Task/Ruling/этап/python/прототип; //-комментарии со ссылками
на процесс удалены; то же в .proto. Правила обновлены в
docs/spec/Код-стайл-Дейл.md. Строк комментариев 27210 -> ~19100.
This commit is contained in:
Rustam Khalimov
2026-09-11 13:39:39 +03:00
parent 5f5538d33b
commit b053d58335
902 changed files with 3902 additions and 12074 deletions
@@ -6,31 +6,22 @@ using Grpc.Net.Client;
namespace Deal.Infrastructure.Integrations.Models;
/// <summary>
/// Транспорт gRPC-клиента telegram-service: общий канал + обязательные metadata (Ruling 1, план Task 14).
/// Транспорт gRPC-клиента telegram-service
/// </summary>
/// <remarks>
/// Singleton (канал живёт долго и переиспользуется всеми вызовами): endpoint из
/// <see cref="TelegramServiceOptions"/>, service-token — из env <c>DEAL_SERVICE_TOKEN</c> (Ruling 13: секреты
/// только в env). Dev-транспорт без TLS (Ruling 2); mTLS (Ruling 6, Task 13): при включённом флаге канал
/// подписывает запрос клиентским сертификатом и проверяет CA сервера (сертификаты передаются
/// <see cref="MtlsCertificates"/>). Пустой endpoint либо пустой токен при создании — ошибка конфигурации (fail-closed:
/// без токена сервис отвергнет каждый вызов UNAUTHENTICATED, Ruling 1). Автоповторы Grpc.Net.Client отключены
/// (MaxRetryAttempts=0): стратегию повторов реализует вызывающий (фоновые циклы Api пробуют в следующем тике).
/// </remarks>
public sealed class TelegramGrpcConnection : IDisposable
{
/// <summary>
/// Env-ключ ожидаемого service-token (зеркало ServiceTokenInterceptor сервисов, Ruling 1).
/// Env-ключ ожидаемого service-token.
/// </summary>
public const string ServiceTokenEnvKey = "DEAL_SERVICE_TOKEN";
/// <summary>
/// Ключ gRPC-metadata с tenant-id (зеркало TelegramServiceImpl, Ruling 1).
/// Ключ gRPC-metadata с tenant-id.
/// </summary>
public const string TenantIdMetadataKey = "tenant-id";
/// <summary>
/// Ключ gRPC-metadata с service-token (зеркало TelegramServiceImpl, Ruling 1).
/// Ключ gRPC-metadata с service-token.
/// </summary>
public const string ServiceTokenMetadataKey = "service-token";
@@ -38,10 +29,10 @@ public sealed class TelegramGrpcConnection : IDisposable
private readonly string _serviceToken;
/// <summary>
/// Создаёт транспорт telegram-service по конфигурации и env-токену (валидация fail-closed).
/// Создаёт транспорт telegram-service по конфигурации и env-токену
/// </summary>
/// <param name="options">Конфигурация секции <c>Services:Telegram</c> (endpoint).</param>
/// <param name="mtlsCertificates">Сертификаты mTLS (Ruling 6): null — plaintext-канал (dev, флаг выключен).</param>
/// <param name="mtlsCertificates">Сертификаты mTLS: null — plaintext-канал (dev, флаг выключен).</param>
/// <exception cref="InvalidOperationException">Пустой endpoint или пустой DEAL_SERVICE_TOKEN.</exception>
public TelegramGrpcConnection(TelegramServiceOptions options, MtlsCertificates? mtlsCertificates = null)
{
@@ -69,13 +60,13 @@ public sealed class TelegramGrpcConnection : IDisposable
}
/// <summary>
/// Создаёт клиент RPC TelegramService поверх общего канала (клиент — лёгкий, на каждый вызов).
/// Создаёт клиент RPC TelegramService поверх общего канала
/// </summary>
/// <returns>Клиент сервиса Telegram (команды ядра наружу).</returns>
public TelegramService.TelegramServiceClient CreateClient() => new(_channel);
/// <summary>
/// Собирает обязательные metadata вызова: tenant-id + service-token (Ruling 1).
/// Собирает обязательные metadata вызова
/// </summary>
/// <param name="tenantId">Id тенанта (строка, формат N — как в сессиях telegram-service).</param>
/// <returns>Metadata для CallOptions вызова.</returns>