Files
Deal/src/core/Deal.Infrastructure/Integrations/Options/TelegramServiceOptions.cs
T
Rustam Khalimov 410194b0cb Разбить Infrastructure и корень Deal.Api по назначению
Integrations -> Abstractions/Exceptions/Extensions/Models/Options/
Services (включая Storage); Persistence-конфигурации -> Configurations;
корень Deal.Api (оркестратор/планировщики/DTO) -> Services/Dtos.
namespace приведён к путям, using добавлены/дедуплицированы, FQN
обновлены.
2026-09-11 13:20:10 +03:00

41 lines
1.9 KiB
C#

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