namespace Tnsu.ApprovalRoute.Application.Reminders;
public sealed class RemindersOptions
{
///
/// Шаблон ссылки на заявку. Подстановки: {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).
///
/// Вынесено в конфигурацию, чтобы смена разметки ссылок в портале правилась
/// настройкой, а не пересборкой сервиса.
///
public string RequestUrlTemplate { get; set; } =
"{siteUrl}?rpnav={nav}&rpmode=approve&rptype={pageUrl}&rpid={requestId}&rplist={listId}";
///
/// PageUrl типа заявки «Заявка на приём» (см. request-portal, forms/RecruitingHire/model.ts,
/// FORM_ID) — по нему ищется RequestType для напоминаний об окончании испытательного срока.
/// Не завязано на SlaHours: этот вид напоминаний не про просрочку шага согласования.
///
public string RecruitingHirePageUrl { get; set; } = "recruiting-hire";
/// За сколько дней до конца испытательного срока присылать напоминание.
public int ProbationReminderDaysBeforeEnd { get; set; } = 3;
///
/// Куда ведёт ссылка в напоминании об окончании испытательного срока — на
/// раздел «Подать заявку» портала, а НЕ на саму заявку на приём: от
/// руководителя по этому напоминанию требуется завести НОВУЮ заявку (решение
/// по итогам испытательного срока), а не открыть уже закрытую старую.
///
/// Поэтому ссылка константная, без подстановок: адрес конкретной формы в
/// портал вообще не передать — параметр rptype без rpid/rpsource
/// игнорируется, и маршрут сваливается в раздел «Подать заявку» (см.
/// parseRoute в request-portal/shared/routing.ts). Отдельная настройка, а не
/// хардкод, — чтобы адрес правился конфигурацией.
///
public string ProbationReminderUrl { get; set; } =
"https://tnsukz.sharepoint.com/sites/requests?rpnav=new";
}