Напоминания: убрать дубль 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:
@@ -1,8 +1,9 @@
|
||||
namespace Tnsu.ApprovalRoute.Application.Reminders;
|
||||
|
||||
/// <param name="ManagerEmail">
|
||||
/// То же значение, что и унаследованный ReceiverEmail, — email руководителя
|
||||
/// принимаемого сотрудника, кому адресовано напоминание.
|
||||
/// <param name="ReceiverEmail">
|
||||
/// Email руководителя принимаемого сотрудника — кому адресовано напоминание.
|
||||
/// Отдельного ManagerEmail рядом нет намеренно: это было то же самое значение
|
||||
/// под вторым именем.
|
||||
/// </param>
|
||||
/// <param name="CandidateEmail">Email принимаемого сотрудника (см. ReminderService.GetProbationEndingAsync).</param>
|
||||
/// <param name="CandidateName">ФИО принимаемого сотрудника (колонка CandidateName списка данных).</param>
|
||||
@@ -11,7 +12,7 @@ namespace Tnsu.ApprovalRoute.Application.Reminders;
|
||||
/// <param name="ProbationEndsAt">Дата окончания испытательного срока (HireDate + срок).</param>
|
||||
/// <param name="DaysUntilProbationEnds">Сколько дней осталось до конца испытательного срока.</param>
|
||||
public sealed record ProbationEndingReminderDto(
|
||||
string ManagerEmail,
|
||||
string ReceiverEmail,
|
||||
string CandidateEmail,
|
||||
string CandidateName,
|
||||
string? ProbationPeriod,
|
||||
@@ -20,4 +21,4 @@ public sealed record ProbationEndingReminderDto(
|
||||
int DaysUntilProbationEnds,
|
||||
string Url,
|
||||
string? ReceiverName = null)
|
||||
: ReminderDto(ManagerEmail, ReceiverName, Url);
|
||||
: ReminderDto(ReceiverEmail, ReceiverName, Url);
|
||||
|
||||
Reference in New Issue
Block a user