Auto approve (#21)
Tests / frontend-test (push) Successful in 46s
Tests / backend-test (push) Successful in 3m39s

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/21
This commit was merged in pull request #21.
This commit is contained in:
2026-09-14 09:01:56 +00:00
parent e2b6227015
commit 2b8fe77fac
24 changed files with 1443 additions and 29 deletions
@@ -2,6 +2,9 @@ using Tnsu.ApprovalRoute.Domain.Enums;
namespace Tnsu.ApprovalRoute.Application.TemplateRouteSteps;
// AutoApprove — «согласовать шаг автоматически по истечении SLA». Обычный bool,
// а не три состояния: наследовать его неоткуда (см. TemplateRouteStep.AutoApprove).
//
// SlaHours/AskOverdueReason у шага перекрывают одноимённые поля типа заявки.
// null — «не задано, наследовать», поэтому оба поля nullable и необязательны
// (0 часов и false — это осознанный выбор, а не «пусто»). Добавлены в конец
@@ -24,7 +27,8 @@ public sealed record TemplateRouteStepDto(
ConditionsLogic ConditionsLogic,
string? Warning = null,
int? SlaHours = null,
bool? AskOverdueReason = null);
bool? AskOverdueReason = null,
bool AutoApprove = false);
public sealed record CreateTemplateRouteStepRequest(
int OrderNo,
@@ -37,7 +41,8 @@ public sealed record CreateTemplateRouteStepRequest(
IReadOnlyList<RouteStepConditionDto>? Conditions,
ConditionsLogic ConditionsLogic,
int? SlaHours = null,
bool? AskOverdueReason = null);
bool? AskOverdueReason = null,
bool AutoApprove = false);
public sealed record UpdateTemplateRouteStepRequest(
int OrderNo,
@@ -50,7 +55,8 @@ public sealed record UpdateTemplateRouteStepRequest(
IReadOnlyList<RouteStepConditionDto>? Conditions,
ConditionsLogic ConditionsLogic,
int? SlaHours = null,
bool? AskOverdueReason = null);
bool? AskOverdueReason = null,
bool AutoApprove = false);
/// <summary>
/// Как и остальные поля PATCH, Conditions=null означает «не менять». Отличить
@@ -68,4 +74,5 @@ public sealed record PatchTemplateRouteStepRequest(
IReadOnlyList<RouteStepConditionDto>? Conditions,
ConditionsLogic? ConditionsLogic = null,
int? SlaHours = null,
bool? AskOverdueReason = null);
bool? AskOverdueReason = null,
bool? AutoApprove = null);