Убрать доки, повторяющие имя/значение члена
summary вида «Ключ «x»» удалены; «Ключ «x»: пояснение» сжаты до пояснения; summary, дословно равные имени/значению, удалены.
This commit is contained in:
@@ -19,14 +19,8 @@ internal static class AiTestHost
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ServiceTokenEnvKey = "DEAL_SERVICE_TOKEN";
|
public const string ServiceTokenEnvKey = "DEAL_SERVICE_TOKEN";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с service-token
|
|
||||||
/// </summary>
|
|
||||||
public const string ServiceTokenMetadataKey = ServiceTokenInterceptor.ServiceTokenMetadataKey;
|
public const string ServiceTokenMetadataKey = ServiceTokenInterceptor.ServiceTokenMetadataKey;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с tenant-id
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = AiServiceImpl.TenantIdMetadataKey;
|
public const string TenantIdMetadataKey = AiServiceImpl.TenantIdMetadataKey;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -11,9 +11,6 @@ namespace Deal.Ai;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class AiServiceImpl : AiService.AiServiceBase
|
public sealed class AiServiceImpl : AiService.AiServiceBase
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с id тенанта.
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = "tenant-id";
|
public const string TenantIdMetadataKey = "tenant-id";
|
||||||
|
|
||||||
// Деталь отказа: tenant-id отсутствует в metadata (UNAUTHENTICATED, шаблон MlServiceImpl).
|
// Деталь отказа: tenant-id отсутствует в metadata (UNAUTHENTICATED, шаблон MlServiceImpl).
|
||||||
|
|||||||
@@ -414,9 +414,6 @@ public static class DiscoveryEndpoints
|
|||||||
return Results.Ok(new { items });
|
return Results.Ok(new { items });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключи из ответа ИИ
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="raw">Сырые ключи ответа модели (null — пусто).</param>
|
/// <param name="raw">Сырые ключи ответа модели (null — пусто).</param>
|
||||||
/// <returns>Очищенные ключи (не более 30, каждый ≤60 символов).</returns>
|
/// <returns>Очищенные ключи (не более 30, каждый ≤60 символов).</returns>
|
||||||
public static IReadOnlyList<string> CleanKeywords(IEnumerable<string>? raw)
|
public static IReadOnlyList<string> CleanKeywords(IEnumerable<string>? raw)
|
||||||
|
|||||||
@@ -15,9 +15,6 @@ public sealed record DiscoveryTaskCreateBody
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Description { get; init; }
|
public string? Description { get; init; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключевые слова поиска; null/пусто — список пуст
|
|
||||||
/// </summary>
|
|
||||||
public IReadOnlyList<string>? Keywords { get; init; }
|
public IReadOnlyList<string>? Keywords { get; init; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -7,14 +7,8 @@ namespace Deal.Api.Extensions;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static class AuthHelpers
|
public static class AuthHelpers
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ в <c>HttpContext.Items</c>, по которому SessionMiddleware хранит CurrentUser.
|
|
||||||
/// </summary>
|
|
||||||
public const string CurrentUserItemKey = "CurrentUser";
|
public const string CurrentUserItemKey = "CurrentUser";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ в <c>HttpContext.Items</c>, по которому OperatorSessionMiddleware хранит CurrentOperator.
|
|
||||||
/// </summary>
|
|
||||||
public const string CurrentOperatorItemKey = "CurrentOperator";
|
public const string CurrentOperatorItemKey = "CurrentOperator";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -8,9 +8,6 @@ namespace Deal.Api.Telegram;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class IngressServiceTokenInterceptor : Interceptor
|
public sealed class IngressServiceTokenInterceptor : Interceptor
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с токеном сервиса
|
|
||||||
/// </summary>
|
|
||||||
public const string ServiceTokenMetadataKey = "service-token";
|
public const string ServiceTokenMetadataKey = "service-token";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -23,9 +23,6 @@ public sealed class TelegramIngressService(
|
|||||||
SseBroker broker,
|
SseBroker broker,
|
||||||
ILogger<TelegramIngressService> logger) : IngressService.IngressServiceBase
|
ILogger<TelegramIngressService> logger) : IngressService.IngressServiceBase
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с id тенанта.
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = "tenant-id";
|
public const string TenantIdMetadataKey = "tenant-id";
|
||||||
|
|
||||||
private const string SystemStatusEventType = "system_status";
|
private const string SystemStatusEventType = "system_status";
|
||||||
|
|||||||
@@ -15,14 +15,8 @@ public sealed class AiGrpcConnection : IDisposable
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ServiceTokenEnvKey = "DEAL_SERVICE_TOKEN";
|
public const string ServiceTokenEnvKey = "DEAL_SERVICE_TOKEN";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с tenant-id.
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = "tenant-id";
|
public const string TenantIdMetadataKey = "tenant-id";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с service-token.
|
|
||||||
/// </summary>
|
|
||||||
public const string ServiceTokenMetadataKey = "service-token";
|
public const string ServiceTokenMetadataKey = "service-token";
|
||||||
|
|
||||||
private readonly GrpcChannel _channel;
|
private readonly GrpcChannel _channel;
|
||||||
|
|||||||
@@ -15,14 +15,8 @@ public sealed class MlGrpcConnection : IDisposable
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ServiceTokenEnvKey = "DEAL_SERVICE_TOKEN";
|
public const string ServiceTokenEnvKey = "DEAL_SERVICE_TOKEN";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с tenant-id.
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = "tenant-id";
|
public const string TenantIdMetadataKey = "tenant-id";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с service-token.
|
|
||||||
/// </summary>
|
|
||||||
public const string ServiceTokenMetadataKey = "service-token";
|
public const string ServiceTokenMetadataKey = "service-token";
|
||||||
|
|
||||||
private readonly GrpcChannel _channel;
|
private readonly GrpcChannel _channel;
|
||||||
|
|||||||
@@ -15,14 +15,8 @@ public sealed class TelegramGrpcConnection : IDisposable
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ServiceTokenEnvKey = "DEAL_SERVICE_TOKEN";
|
public const string ServiceTokenEnvKey = "DEAL_SERVICE_TOKEN";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с tenant-id.
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = "tenant-id";
|
public const string TenantIdMetadataKey = "tenant-id";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с service-token.
|
|
||||||
/// </summary>
|
|
||||||
public const string ServiceTokenMetadataKey = "service-token";
|
public const string ServiceTokenMetadataKey = "service-token";
|
||||||
|
|
||||||
private readonly GrpcChannel _channel;
|
private readonly GrpcChannel _channel;
|
||||||
|
|||||||
@@ -20,9 +20,6 @@ public sealed class DiscTaskEntity
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string Description { get; set; } = string.Empty;
|
public string Description { get; set; } = string.Empty;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключевые слова поиска, сериализованные в JSON
|
|
||||||
/// </summary>
|
|
||||||
public string KeywordsJson { get; set; } = "[]";
|
public string KeywordsJson { get; set; } = "[]";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -5,9 +5,6 @@ namespace Deal.Infrastructure.Persistence.Entities;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class GlobalSettingEntity
|
public sealed class GlobalSettingEntity
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ глобальной настройки
|
|
||||||
/// </summary>
|
|
||||||
public string Key { get; set; } = string.Empty;
|
public string Key { get; set; } = string.Empty;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -5,9 +5,6 @@ namespace Deal.Modules.Cards.Application.Abstractions;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IApiSource : ISource
|
public interface IApiSource : ISource
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ интеграции/провайдера
|
|
||||||
/// </summary>
|
|
||||||
public string ProviderId { get; }
|
public string ProviderId { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -12,14 +12,8 @@ public interface IContainerRules
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string Mode { get; }
|
public string Mode { get; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключевые слова/фразы
|
|
||||||
/// </summary>
|
|
||||||
public IReadOnlyList<string> Keywords { get; }
|
public IReadOnlyList<string> Keywords { get; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключевые технологии/стек-атрибуты
|
|
||||||
/// </summary>
|
|
||||||
public IReadOnlyList<string> Stack { get; }
|
public IReadOnlyList<string> Stack { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -5,9 +5,6 @@ namespace Deal.Modules.Cards.Application.Abstractions;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IFileSource : ISource
|
public interface IFileSource : ISource
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ объекта в хранилище
|
|
||||||
/// </summary>
|
|
||||||
public string ObjectKey { get; }
|
public string ObjectKey { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -25,8 +25,5 @@ public sealed record CardFile
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string Kind { get; init; } = "other";
|
public string Kind { get; init; } = "other";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ объекта в хранилище.
|
|
||||||
/// </summary>
|
|
||||||
public string ObjectKey { get; init; } = string.Empty;
|
public string ObjectKey { get; init; } = string.Empty;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,9 +15,6 @@ public sealed record DiscoveryTaskDraft
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string Description { get; init; } = string.Empty;
|
public string Description { get; init; } = string.Empty;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключевые слова поиска; null → пустой список
|
|
||||||
/// </summary>
|
|
||||||
public IReadOnlyList<string>? Keywords { get; init; }
|
public IReadOnlyList<string>? Keywords { get; init; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -20,9 +20,6 @@ public sealed record DiscoveryTaskRow
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string Description { get; init; } = string.Empty;
|
public string Description { get; init; } = string.Empty;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключевые слова поиска
|
|
||||||
/// </summary>
|
|
||||||
public IReadOnlyList<string> Keywords { get; init; } = Array.Empty<string>();
|
public IReadOnlyList<string> Keywords { get; init; } = Array.Empty<string>();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -5,8 +5,5 @@ namespace Deal.Modules.Settings.Application.Models;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static class GlobalSettingsKeys
|
public static class GlobalSettingsKeys
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ «telegramKeys»
|
|
||||||
/// </summary>
|
|
||||||
public const string TelegramKeys = "telegramKeys";
|
public const string TelegramKeys = "telegramKeys";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,143 +49,65 @@ public static class SettingsKeys
|
|||||||
|
|
||||||
// ── Int: целочисленные настройки ──
|
// ── Int: целочисленные настройки ──
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «archiveAfterDays»
|
|
||||||
/// </summary>
|
|
||||||
public const string ArchiveAfterDays = "archiveAfterDays";
|
public const string ArchiveAfterDays = "archiveAfterDays";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «archiveClearDays»
|
|
||||||
/// </summary>
|
|
||||||
public const string ArchiveClearDays = "archiveClearDays";
|
public const string ArchiveClearDays = "archiveClearDays";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «trashClearDays»
|
|
||||||
/// </summary>
|
|
||||||
public const string TrashClearDays = "trashClearDays";
|
public const string TrashClearDays = "trashClearDays";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ключ «minLen»: минимальная длина сообщения для -1 фильтра
|
/// Минимальная длина сообщения для -1 фильтра
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string MinLen = "minLen";
|
public const string MinLen = "minLen";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «discJoinLimit»
|
|
||||||
/// </summary>
|
|
||||||
public const string DiscJoinLimit = "discJoinLimit";
|
public const string DiscJoinLimit = "discJoinLimit";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «discJoinDelayMin»
|
|
||||||
/// </summary>
|
|
||||||
public const string DiscJoinDelayMin = "discJoinDelayMin";
|
public const string DiscJoinDelayMin = "discJoinDelayMin";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «discJoinDelayMax»
|
|
||||||
/// </summary>
|
|
||||||
public const string DiscJoinDelayMax = "discJoinDelayMax";
|
public const string DiscJoinDelayMax = "discJoinDelayMax";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «discEvalSample»
|
|
||||||
/// </summary>
|
|
||||||
public const string DiscEvalSample = "discEvalSample";
|
public const string DiscEvalSample = "discEvalSample";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «discEvalThreshold»
|
|
||||||
/// </summary>
|
|
||||||
public const string DiscEvalThreshold = "discEvalThreshold";
|
public const string DiscEvalThreshold = "discEvalThreshold";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «excludeBudgetFrom»
|
|
||||||
/// </summary>
|
|
||||||
public const string ExcludeBudgetFrom = "excludeBudgetFrom";
|
public const string ExcludeBudgetFrom = "excludeBudgetFrom";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «excludeBudgetTo»
|
|
||||||
/// </summary>
|
|
||||||
public const string ExcludeBudgetTo = "excludeBudgetTo";
|
public const string ExcludeBudgetTo = "excludeBudgetTo";
|
||||||
|
|
||||||
// ── Bool: булевы настройки ──
|
// ── Bool: булевы настройки ──
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «autoArchive»
|
|
||||||
/// </summary>
|
|
||||||
public const string AutoArchive = "autoArchive";
|
public const string AutoArchive = "autoArchive";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «aiEnabled»
|
|
||||||
/// </summary>
|
|
||||||
public const string AiEnabled = "aiEnabled";
|
public const string AiEnabled = "aiEnabled";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «aiFilterEnabled»
|
|
||||||
/// </summary>
|
|
||||||
public const string AiFilterEnabled = "aiFilterEnabled";
|
public const string AiFilterEnabled = "aiFilterEnabled";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «conversionOn»
|
|
||||||
/// </summary>
|
|
||||||
public const string ConversionOn = "conversionOn";
|
public const string ConversionOn = "conversionOn";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «remindersEnabled»
|
|
||||||
/// </summary>
|
|
||||||
public const string RemindersEnabled = "remindersEnabled";
|
public const string RemindersEnabled = "remindersEnabled";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «mlEnabled»
|
|
||||||
/// </summary>
|
|
||||||
public const string MlEnabled = "mlEnabled";
|
public const string MlEnabled = "mlEnabled";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «blockResumes»
|
|
||||||
/// </summary>
|
|
||||||
public const string BlockResumes = "blockResumes";
|
public const string BlockResumes = "blockResumes";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «budgetRequiredHire»
|
|
||||||
/// </summary>
|
|
||||||
public const string BudgetRequiredHire = "budgetRequiredHire";
|
public const string BudgetRequiredHire = "budgetRequiredHire";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «budgetRequiredOrder»
|
|
||||||
/// </summary>
|
|
||||||
public const string BudgetRequiredOrder = "budgetRequiredOrder";
|
public const string BudgetRequiredOrder = "budgetRequiredOrder";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «autoMonitorNew»
|
|
||||||
/// </summary>
|
|
||||||
public const string AutoMonitorNew = "autoMonitorNew";
|
public const string AutoMonitorNew = "autoMonitorNew";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «discPaused»
|
|
||||||
/// </summary>
|
|
||||||
public const string DiscPaused = "discPaused";
|
public const string DiscPaused = "discPaused";
|
||||||
|
|
||||||
// ── String: строковые настройки ──
|
// ── String: строковые настройки ──
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «targetCurrency»
|
|
||||||
/// </summary>
|
|
||||||
public const string TargetCurrency = "targetCurrency";
|
public const string TargetCurrency = "targetCurrency";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «rateSource»
|
|
||||||
/// </summary>
|
|
||||||
public const string RateSource = "rateSource";
|
public const string RateSource = "rateSource";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «aiProvider»
|
|
||||||
/// </summary>
|
|
||||||
public const string AiProvider = "aiProvider";
|
public const string AiProvider = "aiProvider";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «aiPrompt»
|
|
||||||
/// </summary>
|
|
||||||
public const string AiPrompt = "aiPrompt";
|
public const string AiPrompt = "aiPrompt";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «aiFilterPrompt»
|
|
||||||
/// </summary>
|
|
||||||
public const string AiFilterPrompt = "aiFilterPrompt";
|
public const string AiFilterPrompt = "aiFilterPrompt";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -193,83 +115,38 @@ public static class SettingsKeys
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string CardPrompt = "cardPrompt";
|
public const string CardPrompt = "cardPrompt";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «domainDescription»
|
|
||||||
/// </summary>
|
|
||||||
public const string DomainDescription = "domainDescription";
|
public const string DomainDescription = "domainDescription";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «wantedType»
|
|
||||||
/// </summary>
|
|
||||||
public const string WantedType = "wantedType";
|
public const string WantedType = "wantedType";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «hireLabel»
|
|
||||||
/// </summary>
|
|
||||||
public const string HireLabel = "hireLabel";
|
public const string HireLabel = "hireLabel";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «orderLabel»
|
|
||||||
/// </summary>
|
|
||||||
public const string OrderLabel = "orderLabel";
|
public const string OrderLabel = "orderLabel";
|
||||||
|
|
||||||
// ── List: списки строк ──
|
// ── List: списки строк ──
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «stopPhrases»
|
|
||||||
/// </summary>
|
|
||||||
public const string StopPhrases = "stopPhrases";
|
public const string StopPhrases = "stopPhrases";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «domainKeywords»
|
|
||||||
/// </summary>
|
|
||||||
public const string DomainKeywords = "domainKeywords";
|
public const string DomainKeywords = "domainKeywords";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «hireMarkers»
|
|
||||||
/// </summary>
|
|
||||||
public const string HireMarkers = "hireMarkers";
|
public const string HireMarkers = "hireMarkers";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «levelTerms»
|
|
||||||
/// </summary>
|
|
||||||
public const string LevelTerms = "levelTerms";
|
public const string LevelTerms = "levelTerms";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «resumeMarkers»
|
|
||||||
/// </summary>
|
|
||||||
public const string ResumeMarkers = "resumeMarkers";
|
public const string ResumeMarkers = "resumeMarkers";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «excludeKeywords»
|
|
||||||
/// </summary>
|
|
||||||
public const string ExcludeKeywords = "excludeKeywords";
|
public const string ExcludeKeywords = "excludeKeywords";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «excludeLocations»
|
|
||||||
/// </summary>
|
|
||||||
public const string ExcludeLocations = "excludeLocations";
|
public const string ExcludeLocations = "excludeLocations";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «excludeTypes»
|
|
||||||
/// </summary>
|
|
||||||
public const string ExcludeTypes = "excludeTypes";
|
public const string ExcludeTypes = "excludeTypes";
|
||||||
|
|
||||||
// ── Dict / special ──
|
// ── Dict / special ──
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «colState»
|
|
||||||
/// </summary>
|
|
||||||
public const string ColState = "colState";
|
public const string ColState = "colState";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «myPrompts»
|
|
||||||
/// </summary>
|
|
||||||
public const string MyPrompts = "myPrompts";
|
public const string MyPrompts = "myPrompts";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ «aiConfigs»
|
|
||||||
/// </summary>
|
|
||||||
public const string AiConfigs = "aiConfigs";
|
public const string AiConfigs = "aiConfigs";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -29,9 +29,6 @@ public sealed class DiscoveryEndpointsHelpersTests
|
|||||||
Assert.Equal(["кл юч", "тест"], keywords);
|
Assert.Equal(["кл юч", "тест"], keywords);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ длиннее 60 символов отбрасывается
|
|
||||||
/// </summary>
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void CleanKeywords_DropsOverlongKeyword()
|
public void CleanKeywords_DropsOverlongKeyword()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -57,9 +57,6 @@ public sealed class MtlsOptionsTests
|
|||||||
Assert.False(options.Enabled);
|
Assert.False(options.Enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ DEAL_MTLS_ENABLED отсутствует в окружении — флаг выключен.
|
|
||||||
/// </summary>
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void FromConfiguration_MissingEnabledKey_EnabledFalse()
|
public void FromConfiguration_MissingEnabledKey_EnabledFalse()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ public sealed class FakeGlobalSettingsStore : IGlobalSettingsStore
|
|||||||
{
|
{
|
||||||
private readonly Dictionary<string, SettingValue> _rows = new(StringComparer.Ordinal);
|
private readonly Dictionary<string, SettingValue> _rows = new(StringComparer.Ordinal);
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключи сохранённых строк
|
|
||||||
/// </summary>
|
|
||||||
public IReadOnlyCollection<string> Keys => _rows.Keys.ToList();
|
public IReadOnlyCollection<string> Keys => _rows.Keys.ToList();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ public sealed class FakeSettingsStore : ISettingsStore
|
|||||||
{
|
{
|
||||||
private readonly Dictionary<string, SettingValue> _rows = new(StringComparer.Ordinal);
|
private readonly Dictionary<string, SettingValue> _rows = new(StringComparer.Ordinal);
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключи сохранённых строк
|
|
||||||
/// </summary>
|
|
||||||
public IReadOnlyCollection<string> Keys => _rows.Keys.ToList();
|
public IReadOnlyCollection<string> Keys => _rows.Keys.ToList();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -39,14 +39,8 @@ internal static class TelegramIngressTestHost
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const int RpcDeadlineSeconds = 10;
|
public const int RpcDeadlineSeconds = 10;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с service-token
|
|
||||||
/// </summary>
|
|
||||||
public const string ServiceTokenMetadataKey = IngressServiceTokenInterceptor.ServiceTokenMetadataKey;
|
public const string ServiceTokenMetadataKey = IngressServiceTokenInterceptor.ServiceTokenMetadataKey;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с tenant-id
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = TelegramIngressService.TenantIdMetadataKey;
|
public const string TenantIdMetadataKey = TelegramIngressService.TenantIdMetadataKey;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -14,9 +14,6 @@ namespace Deal.Grpc.Hosting.Interceptors;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class ServiceTokenInterceptor : Interceptor
|
public sealed class ServiceTokenInterceptor : Interceptor
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с токеном сервиса
|
|
||||||
/// </summary>
|
|
||||||
public const string ServiceTokenMetadataKey = "service-token";
|
public const string ServiceTokenMetadataKey = "service-token";
|
||||||
|
|
||||||
// Префикс методов стандартного gRPC-health, освобождённых от проверки токена.
|
// Префикс методов стандартного gRPC-health, освобождённых от проверки токена.
|
||||||
|
|||||||
@@ -23,14 +23,8 @@ internal static class MlTestHost
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string DataDirEnvKey = MlOptions.DataDirEnvVarName;
|
public const string DataDirEnvKey = MlOptions.DataDirEnvVarName;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с service-token
|
|
||||||
/// </summary>
|
|
||||||
public const string ServiceTokenMetadataKey = ServiceTokenInterceptor.ServiceTokenMetadataKey;
|
public const string ServiceTokenMetadataKey = ServiceTokenInterceptor.ServiceTokenMetadataKey;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с tenant-id
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = MlServiceImpl.TenantIdMetadataKey;
|
public const string TenantIdMetadataKey = MlServiceImpl.TenantIdMetadataKey;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -9,9 +9,6 @@ namespace Deal.Ml;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class MlServiceImpl : MlService.MlServiceBase
|
public sealed class MlServiceImpl : MlService.MlServiceBase
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с id тенанта.
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = "tenant-id";
|
public const string TenantIdMetadataKey = "tenant-id";
|
||||||
|
|
||||||
private const string TenantIdMissingDetail = "tenant-id отсутствует в metadata";
|
private const string TenantIdMissingDetail = "tenant-id отсутствует в metadata";
|
||||||
|
|||||||
@@ -40,14 +40,8 @@ internal static class TelegramTestHost
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string SessionDirEnvKey = TgOptions.SessionDirEnvVarName;
|
public const string SessionDirEnvKey = TgOptions.SessionDirEnvVarName;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с service-token
|
|
||||||
/// </summary>
|
|
||||||
public const string ServiceTokenMetadataKey = ServiceTokenInterceptor.ServiceTokenMetadataKey;
|
public const string ServiceTokenMetadataKey = ServiceTokenInterceptor.ServiceTokenMetadataKey;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с tenant-id
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = TelegramServiceImpl.TenantIdMetadataKey;
|
public const string TenantIdMetadataKey = TelegramServiceImpl.TenantIdMetadataKey;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -14,14 +14,8 @@ namespace Deal.Telegram.Core;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class CoreIngressClient : ICoreIngressClient
|
public sealed class CoreIngressClient : ICoreIngressClient
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с id тенанта.
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = "tenant-id";
|
public const string TenantIdMetadataKey = "tenant-id";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с service-token.
|
|
||||||
/// </summary>
|
|
||||||
public const string ServiceTokenMetadataKey = "service-token";
|
public const string ServiceTokenMetadataKey = "service-token";
|
||||||
|
|
||||||
private readonly CoreIngressOptions _options;
|
private readonly CoreIngressOptions _options;
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ public sealed class CoreIngressOptions
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string IngressEndpointEnvVarName = "SERVICES__CORE__INGRESS";
|
public const string IngressEndpointEnvVarName = "SERVICES__CORE__INGRESS";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ конфигурации адреса ингресса
|
|
||||||
/// </summary>
|
|
||||||
public const string IngressEndpointConfigKey = "Services:Core:Ingress";
|
public const string IngressEndpointConfigKey = "Services:Core:Ingress";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -5,9 +5,6 @@ namespace Deal.Telegram.Sessions;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static class SessionErrorMessages
|
public static class SessionErrorMessages
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключи приложения не переданы ядром
|
|
||||||
/// </summary>
|
|
||||||
public const string NoApiKeys = "Сначала сохраните Telegram api_id и api_hash в настройках";
|
public const string NoApiKeys = "Сначала сохраните Telegram api_id и api_hash в настройках";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -100,8 +97,5 @@ public static class SessionErrorMessages
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string SignUpRequired = "Номер не зарегистрирован в Telegram — зарегистрируйте его в приложении Telegram";
|
public const string SignUpRequired = "Номер не зарегистрирован в Telegram — зарегистрируйте его в приложении Telegram";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ шифрования сессий не задан в env
|
|
||||||
/// </summary>
|
|
||||||
public const string SessionKeyNotConfigured = "Ключ шифрования сессий не задан (DEAL_TELEGRAM_SESSION_KEY)";
|
public const string SessionKeyNotConfigured = "Ключ шифрования сессий не задан (DEAL_TELEGRAM_SESSION_KEY)";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,9 +31,6 @@ public sealed class TgOptions
|
|||||||
SessionsDirectory = sessionsDirectory;
|
SessionsDirectory = sessionsDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ключ AES-256-GCM обёртки файлов сессий
|
|
||||||
/// </summary>
|
|
||||||
public byte[] SessionKey { get; }
|
public byte[] SessionKey { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -14,9 +14,6 @@ namespace Deal.Telegram;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class TelegramServiceImpl : TelegramService.TelegramServiceBase
|
public sealed class TelegramServiceImpl : TelegramService.TelegramServiceBase
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Ключ gRPC-metadata с id тенанта.
|
|
||||||
/// </summary>
|
|
||||||
public const string TenantIdMetadataKey = "tenant-id";
|
public const string TenantIdMetadataKey = "tenant-id";
|
||||||
|
|
||||||
private const int DialogListLimit = 500;
|
private const int DialogListLimit = 500;
|
||||||
|
|||||||
Reference in New Issue
Block a user