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;
}