95d460c80a
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/19
59 lines
4.3 KiB
C#
59 lines
4.3 KiB
C#
namespace Tnsu.ApprovalRoute.Application.Reminders;
|
||
|
||
public sealed class RemindersOptions
|
||
{
|
||
/// <summary>
|
||
/// Шаблон ссылки на заявку. Подстановки: {siteUrl}, {pageUrl}, {requestId},
|
||
/// {listId}, {nav}.
|
||
///
|
||
/// Портал — одностраничный и живёт в КОРНЕ сайта, отдельного пути к странице
|
||
/// нет; всё состояние передаётся параметрами запроса (см. shared/routing.ts
|
||
/// в request-portal). Пример живой ссылки:
|
||
/// https://tnsukz.sharepoint.com/sites/requests?rpnav=approvals&rpmode=approve&rptype=it-1c-ticket&rpid=11&rplist=%2Fsites%2Frequests%2FLists%2F...
|
||
///
|
||
/// {pageUrl} — это PageUrl типа заявки, то есть КЛЮЧ ФОРМЫ (it-1c-ticket), а
|
||
/// не путь к странице: в портале он и подставляется в rptype.
|
||
///
|
||
/// {listId} — server-relative url КОНКРЕТНОЙ партиции, где лежит строка
|
||
/// согласования (параметр rplist). Без него портал открывал бы заявку так,
|
||
/// будто она лежит в ТЕКУЩЕЙ партиции типа, и архивная заявка не находилась
|
||
/// бы вовсе (см. IRoute.listId в request-portal/shared/routing.ts).
|
||
///
|
||
/// Вынесено в конфигурацию, чтобы смена разметки ссылок в портале правилась
|
||
/// настройкой, а не пересборкой сервиса.
|
||
/// </summary>
|
||
public string RequestUrlTemplate { get; set; } =
|
||
"{siteUrl}?rpnav={nav}&rpmode=approve&rptype={pageUrl}&rpid={requestId}&rplist={listId}";
|
||
|
||
/// <summary>
|
||
/// PageUrl типа заявки «Заявка на приём» (см. request-portal, forms/RecruitingHire/model.ts,
|
||
/// FORM_ID) — по нему ищется RequestType для напоминаний об окончании испытательного срока.
|
||
/// Не завязано на SlaHours: этот вид напоминаний не про просрочку шага согласования.
|
||
/// </summary>
|
||
public string RecruitingHirePageUrl { get; set; } = "recruiting-hire";
|
||
|
||
/// <summary>
|
||
/// За сколько дней до конца испытательного срока присылать напоминание — неделя,
|
||
/// чтобы у руководителя было время подготовить решение по итогам срока.
|
||
///
|
||
/// Дни КАЛЕНДАРНЫЕ, не рабочие: напоминание строится ровно в тот день, когда до
|
||
/// конца срока остаётся столько дней, и попади он на выходной — уйдёт в выходной.
|
||
/// </summary>
|
||
public int ProbationReminderDaysBeforeEnd { get; set; } = 7;
|
||
|
||
/// <summary>
|
||
/// Куда ведёт ссылка в напоминании об окончании испытательного срока — на
|
||
/// раздел «Подать заявку» портала, а НЕ на саму заявку на приём: от
|
||
/// руководителя по этому напоминанию требуется завести НОВУЮ заявку (решение
|
||
/// по итогам испытательного срока), а не открыть уже закрытую старую.
|
||
///
|
||
/// Поэтому ссылка константная, без подстановок: адрес конкретной формы в
|
||
/// портал вообще не передать — параметр rptype без rpid/rpsource
|
||
/// игнорируется, и маршрут сваливается в раздел «Подать заявку» (см.
|
||
/// parseRoute в request-portal/shared/routing.ts). Отдельная настройка, а не
|
||
/// хардкод, — чтобы адрес правился конфигурацией.
|
||
/// </summary>
|
||
public string ProbationReminderUrl { get; set; } =
|
||
"https://tnsukz.sharepoint.com/sites/requests?rpnav=new";
|
||
}
|