Files
Deal/src/core/Deal.Modules.Discovery/Application/DiscoveryWorkerService.Constants.cs
T
Rustam Khalimov 9e07568ddd Инициализировать репозиторий «Дейл»
Первый коммит: модульный монолит ядра (.NET 10) и gRPC-сервисы
ai/ml/telegram, фронтенд Vue 3/Vite/Tailwind, документация (ТЗ,
инструкция пользователя, техдокументация, код-стайл), бэклог,
скрипты развёртывания и архив прототипа LeadRadar.
2026-09-11 02:50:17 +03:00

92 lines
4.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
namespace Deal.Modules.Discovery.Application;
// Часть DiscoveryWorkerService: константы — действия тика, пороги/размеры воркера и метки кандидатов
// (1:1 python discovery_worker L56/L7489).
public sealed partial class DiscoveryWorkerService
{
// ── Действия тика (python discovery_worker L56) ──
/// <summary>
/// Тик: работы нет (паузы/нет задач/заняты шаги других задач).
/// </summary>
public const string ActionNone = "none";
/// <summary>
/// Тик: выполнен шаг поиска/закрыт проход ключей.
/// </summary>
public const string ActionSearch = "search";
/// <summary>
/// Тик: кандидат оценён и переведён в review.
/// </summary>
public const string ActionReview = "review";
/// <summary>
/// Тик: кандидат пропущен (мало участников/язык/мало подходящих/3 неудачи join).
/// </summary>
public const string ActionSkip = "skip";
/// <summary>
/// Тик: авто-вступление выполнено.
/// </summary>
public const string ActionJoin = "join";
/// <summary>
/// Тик: кандидат отклонён повторной проверкой перед авто-вступлением.
/// </summary>
public const string ActionReject = "reject";
/// <summary>
/// Тик: FloodWait — стоп авто-вступлений до конца суток.
/// </summary>
public const string ActionFlood = "flood";
/// <summary>
/// Тик: сбой шага (не роняет задачу/воркер).
/// </summary>
public const string ActionError = "error";
/// <summary>
/// Тик: задача выполнила план вступлений — done.
/// </summary>
public const string ActionDone = "done";
// ── Пороги/размеры воркера (python L7489) ──
// Минимальный объём содержательной выборки для вердикта оценки (python _MIN_CONTENT L77).
private const int MinContentMessages = 3;
// Ошибки поиска одного ключа подряд, после которых ключ пропускается (python L80).
private const int SearchErrorsToSkip = 3;
// Неудачные авто-вступления подряд, после которых кандидат удаляется (python L417419).
private const int MaxJoinFailures = 3;
// Верхняя граница результатов глобального поиска (прототип discovery_search default 30).
private const int SearchResultLimit = 30;
// ── Метки кандидата (marks; python discovery_worker L8589) ──
/// <summary>
/// Метка: число участников не подтверждено (minSubscribers задан, participants неизвестны).
/// </summary>
public const string MarkParticipantsNotConfirmed = "участники не подтверждены";
/// <summary>
/// Метка: язык не подтверждён (доля кириллицы между порогами).
/// </summary>
public const string MarkLangNotConfirmed = "язык не подтверждён";
/// <summary>
/// Метка: канал, история недоступна без членства (контент не оценён).
/// </summary>
public const string MarkChannelNoHistory = "канал: история недоступна";
/// <summary>
/// Метка: закрытая группа — история скрыта, вступите сами (контент не оценён).
/// </summary>
public const string MarkClosedGroup = "закрытая группа (история скрыта) — вступите сами";
/// <summary>
/// Метка: содержательных сообщений выборки меньше трёх (решает человек).
/// </summary>
public const string MarkFewMessages = "мало сообщений";
}