Напоминания: убрать дубль ManagerEmail, ссылка из настроек; None первым во всех enum
Напоминания: - ProbationEndingReminderDto: ManagerEmail убран — это был унаследованный ReceiverEmail под вторым именем. - Ссылка для ProbationEnding больше не ведёт на саму заявку на приём (она уже закрыта, решать по ней нечего) — берётся из новой настройки RemindersOptions.ProbationReminderUrl и ведёт в раздел, где заводят новую заявку. Подстановок в ней нет: адрес конкретной формы в портал не передать, rptype без rpid/rpsource игнорируется (см. parseRoute в request-portal). Заодно ушли BuildProbationUrl и ненужные больше параметры type/listId. Стайлгайд (CLAUDE.md) — у enum первое значение None: - ReminderFeed: None=0 трактуется как ApprovalOverdue, чтобы вызов без явного выбора работал как раньше. - EmploymentStatus: заодно инвертирован switch в ReminderService — раньше «продолжить» было веткой по умолчанию, и новый None молча означал бы «сотрудник работает». Теперь по умолчанию пропуск с предупреждением. - ConditionsLogic: None — НЕвалидное значение, отвергается валидаторами шага (в том числе новым PatchTemplateRouteStepRequestValidator, его не было вовсе). Поэтому у ConditionsLogic в Create/Update-запросах убрано значение по умолчанию: System.Text.Json в .NET 10 уважает дефолты параметров конструктора, и пропущенное поле молча означало «И». Теперь пропущенное поле даёт None и упирается в валидатор. ЛОМАЮЩЕЕ ИЗМЕНЕНИЕ КОНТРАКТА: клиент, не присылающий conditionsLogic в POST/PUT шага, получит 400 вместо прежнего молчаливого «И». Админка не затронута — она это поле всегда отправляет.
This commit is contained in:
@@ -34,4 +34,19 @@ public sealed class RemindersOptions
|
||||
|
||||
/// <summary>За сколько дней до конца испытательного срока присылать напоминание.</summary>
|
||||
public int ProbationReminderDaysBeforeEnd { get; set; } = 3;
|
||||
|
||||
/// <summary>
|
||||
/// Куда ведёт ссылка в напоминании об окончании испытательного срока — на
|
||||
/// раздел «Подать заявку» портала, а НЕ на саму заявку на приём: от
|
||||
/// руководителя по этому напоминанию требуется завести НОВУЮ заявку (решение
|
||||
/// по итогам испытательного срока), а не открыть уже закрытую старую.
|
||||
///
|
||||
/// Поэтому ссылка константная, без подстановок: адрес конкретной формы в
|
||||
/// портал вообще не передать — параметр rptype без rpid/rpsource
|
||||
/// игнорируется, и маршрут сваливается в раздел «Подать заявку» (см.
|
||||
/// parseRoute в request-portal/shared/routing.ts). Отдельная настройка, а не
|
||||
/// хардкод, — чтобы адрес правился конфигурацией.
|
||||
/// </summary>
|
||||
public string ProbationReminderUrl { get; set; } =
|
||||
"https://tnsukz.sharepoint.com/sites/requests?rpnav=new";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user