основное сделано

This commit is contained in:
gorbenko.pavel
2026-08-12 15:12:11 +05:00
parent 4b83d666f1
commit 9fc089c37a
47 changed files with 2481 additions and 52 deletions
@@ -9,5 +9,21 @@ public class RequestType
public string? SiteUrl { get; set; }
public string Section { get; set; } = string.Empty;
/// <summary>
/// SLA по умолчанию для ВСЕХ шагов заявок этого типа, в часах. Отсчёт идёт от
/// активации шага, а не от создания заявки (см. эндпоинт напоминаний).
/// null — SLA не настроен, напоминания по этому типу не строятся.
/// Значение на шаге (<see cref="TemplateRouteStep.SlaHours"/>) перекрывает это.
/// </summary>
public int? SlaHours { get; set; }
/// <summary>
/// Спрашивать ли у согласующего причину просрочки — значение по умолчанию для
/// всех шагов заявок этого типа. null — не задано.
/// Отдаётся в ответе эндпоинта напоминаний, чтобы вызывающая сторона решила,
/// запрашивать причину или просто напомнить.
/// </summary>
public bool? AskOverdueReason { get; set; }
public ICollection<TemplateRoute> Routes { get; set; } = new List<TemplateRoute>();
}
@@ -16,6 +16,21 @@ public class TemplateRouteStep
public int RouteId { get; set; }
public bool AllowReassignToOtherApprovers { get; set; }
/// <summary>
/// SLA этого шага в часах — перекрывает <see cref="RequestType.SlaHours"/>.
/// null означает ИМЕННО «не задано, наследовать от типа заявки», а 0 —
/// осознанное «напоминать сразу», поэтому поле обязано быть nullable и не
/// должно получать значение по умолчанию.
/// </summary>
public int? SlaHours { get; set; }
/// <summary>
/// Спрашивать ли причину просрочки на этом шаге — перекрывает
/// <see cref="RequestType.AskOverdueReason"/>. Здесь тоже три состояния:
/// null — наследовать от типа, true/false — явный выбор.
/// </summary>
public bool? AskOverdueReason { get; set; }
public string? FieldName { get; set; }
public ComparisonOperator? Operation { get; set; }
public string? Value { get; set; }