53 lines
3.5 KiB
C#
53 lines
3.5 KiB
C#
namespace Tnsu.ApprovalRoute.Application.Reminders;
|
|
|
|
/// <param name="Email">Согласующий/исполнитель из строки списка — кому напоминать.</param>
|
|
/// <param name="HoursOverdue">
|
|
/// На сколько часов просрочен шаг: сейчас минус (активация шага + SLA).
|
|
/// Выходные не учитываются — считаются календарные часы.
|
|
/// </param>
|
|
/// <param name="Url">Ссылка на заявку, требующую решения.</param>
|
|
/// <param name="AskOverdueReason">
|
|
/// Спрашивать ли у пользователя причину просрочки. Значение уже с применённым
|
|
/// наследованием (шаг перекрывает тип заявки).
|
|
/// </param>
|
|
/// <param name="Status">Статус просроченного шага (ApprovalStatus строки списка «… — согласование»).</param>
|
|
/// <param name="RequestUniqueCode">
|
|
/// Уникальный код заявки (колонка RequestUniqueCode списка данных) — null, если у
|
|
/// заявки его нет или строка данных не найдена.
|
|
/// </param>
|
|
/// <param name="Category">
|
|
/// Вид напоминания. Необязательный — параметр добавлен позже остальных, поэтому по
|
|
/// умолчанию <see cref="ReminderCategory.None"/> («не указана»): старые вызовы
|
|
/// конструктора и потребители, ничего не знающие о категориях, продолжают работать
|
|
/// как раньше.
|
|
/// </param>
|
|
/// <param name="ManagerEmail">
|
|
/// Только для <see cref="ReminderCategory.ProbationEnding"/> — email руководителя
|
|
/// принимаемого сотрудника (см. ReminderService.GetProbationEndingAsync). Для
|
|
/// остальных категорий — null.
|
|
/// </param>
|
|
/// <param name="CandidateEmail">Только для ProbationEnding — email принимаемого сотрудника.</param>
|
|
/// <param name="CandidateName">Только для ProbationEnding — ФИО принимаемого сотрудника (колонка CandidateName).</param>
|
|
/// <param name="ProbationPeriod">Только для ProbationEnding — текст испытательного срока (колонка ProbationPeriod).</param>
|
|
/// <param name="HireDate">Только для ProbationEnding — дата приёма (колонка HireDate).</param>
|
|
/// <param name="ProbationEndsAt">Только для ProbationEnding — дата окончания испытательного срока (HireDate + срок).</param>
|
|
/// <param name="DaysUntilProbationEnds">Только для ProbationEnding — сколько дней осталось до конца испытательного срока.</param>
|
|
public sealed record ReminderDto(
|
|
string Email,
|
|
int HoursOverdue,
|
|
string Url,
|
|
bool AskOverdueReason,
|
|
int RequestTypeId,
|
|
string RequestTypeName,
|
|
int RequestId,
|
|
string Status,
|
|
string? RequestUniqueCode,
|
|
ReminderCategory Category = ReminderCategory.None,
|
|
string? ManagerEmail = null,
|
|
string? CandidateEmail = null,
|
|
string? CandidateName = null,
|
|
string? ProbationPeriod = null,
|
|
DateTimeOffset? HireDate = null,
|
|
DateTimeOffset? ProbationEndsAt = null,
|
|
int? DaysUntilProbationEnds = null);
|