namespace Deal.Modules.Discovery.Application; /// /// Статусы задачи поиска Discovery (колонка DiscTasks.Status; discovery.py L147, api-map §4.8). /// /// /// draft — создана, поиск не запускался; running — поиск/оценка/вступления идут; paused — поставлена на паузу /// вручную; done — план авто-вступлений выполнен (воркер, discovery_worker _finish_done); failed — упала/остановлена /// (зарезервировано прототипом). done/failed — терминальные: не занимают бюджет plan_joins (python _DONE_TASK L37) /// и при повторном start сбрасывают прогресс поиска (start_task L332–339). /// public static class DiscoveryTaskStatuses { /// /// Создана, поиск ещё не запускался (значение по умолчанию при INSERT). /// public const string Draft = "draft"; /// /// Поиск запущен (обрабатывается воркером). /// public const string Running = "running"; /// /// Поставлена на паузу вручную (POST …/pause); прогресс поиска сохраняется. /// public const string Paused = "paused"; /// /// План авто-вступлений выполнен (терминальный; повторный start сбрасывает прогресс). /// public const string Done = "done"; /// /// Упала/остановлена (терминальный статус прототипа; повторный start сбрасывает прогресс). /// public const string Failed = "failed"; /// /// Проверка терминального статуса: задача не занимает бюджет plan_joins (python _DONE_TASK L37). /// /// Статус задачи. /// True — done/failed (повторный start сбрасывает прогресс поиска, L332–339). public static bool IsFinished(string status) { return status is Done or Failed; } }