using Deal.Infrastructure.Integrations.Abstractions; using Deal.Infrastructure.Integrations.Exceptions; using Deal.Infrastructure.Integrations.Extensions; using Deal.Infrastructure.Integrations.Models; using Deal.Infrastructure.Integrations.Services; namespace Deal.Infrastructure.Integrations.Options; /// /// Конфигурация клиента telegram-service — секция Services:Telegram (Ruling 6, план Task 14). /// /// /// По умолчанию dev = Local-заглушка: UseLocal=true регистрирует LocalTelegramGateway /// (нейтральный no-op/idle — реальный telegram-service в dev не поднят), реальный сервис подключается /// Services:Telegram:UseLocal=false + endpoint (env SERVICES__TELEGRAM__USELOCAL=false, /// SERVICES__TELEGRAM__ENDPOINT=http://localhost:5101, compose — Ruling 12). Выбор реализации — на /// старте, логики переключения в рантайме нет (Ruling 6). /// public sealed class TelegramServiceOptions { /// /// Имя секции конфигурации (appsettings.json / env-префикс SERVICES__TELEGRAM__*). /// public const string SectionName = "Services:Telegram"; /// /// Endpoint telegram-service по умолчанию (dev-порт сервиса, Ruling 12). /// public const string DefaultEndpoint = "http://localhost:5101"; /// /// True — Local-заглушка LocalTelegramGateway (default), false — gRPC-клиент GrpcTelegramClient. /// public bool UseLocal { get; set; } = true; /// /// Базовый адрес telegram-service (http://host:port; только без TLS — Ruling 2). /// public string Endpoint { get; set; } = DefaultEndpoint; }