using Tnsu.ApprovalRoute.Domain.Enums; namespace Tnsu.ApprovalRoute.Application.TemplateRouteSteps; // SlaHours/AskOverdueReason у шага перекрывают одноимённые поля типа заявки. // null — «не задано, наследовать», поэтому оба поля nullable и необязательны // (0 часов и false — это осознанный выбор, а не «пусто»). Добавлены в конец // записей, чтобы не ломать существующие позиционные вызовы. public sealed record TemplateRouteStepDto( int Id, int OrderNo, string? ExecutorEmail, string? Position, ProjectRole? ProjectRole, HeadType? HeadType, RouteStepStatus Status, int RouteId, bool AllowReassignToOtherApprovers, string? FieldName, ComparisonOperator? Operation, string? Value, string? Warning = null, int? SlaHours = null, bool? AskOverdueReason = null); public sealed record CreateTemplateRouteStepRequest( int OrderNo, string? ExecutorEmail, string? Position, ProjectRole? ProjectRole, HeadType? HeadType, RouteStepStatus Status, bool AllowReassignToOtherApprovers, string? FieldName, ComparisonOperator? Operation, string? Value, int? SlaHours = null, bool? AskOverdueReason = null); public sealed record UpdateTemplateRouteStepRequest( int OrderNo, string? ExecutorEmail, string? Position, ProjectRole? ProjectRole, HeadType? HeadType, RouteStepStatus Status, bool AllowReassignToOtherApprovers, string? FieldName, ComparisonOperator? Operation, string? Value, int? SlaHours = null, bool? AskOverdueReason = null); public sealed record PatchTemplateRouteStepRequest( int? OrderNo, string? ExecutorEmail, string? Position, ProjectRole? ProjectRole, HeadType? HeadType, RouteStepStatus? Status, bool? AllowReassignToOtherApprovers, string? FieldName, ComparisonOperator? Operation, string? Value, int? SlaHours = null, bool? AskOverdueReason = null);