diff --git a/backend/Tnsu.ApprovalRoute.Application/TemplateRoutes/ResolveTemplateRouteDto.cs b/backend/Tnsu.ApprovalRoute.Application/TemplateRoutes/ResolveTemplateRouteDto.cs
index 1aba714..7632e7d 100644
--- a/backend/Tnsu.ApprovalRoute.Application/TemplateRoutes/ResolveTemplateRouteDto.cs
+++ b/backend/Tnsu.ApprovalRoute.Application/TemplateRoutes/ResolveTemplateRouteDto.cs
@@ -13,6 +13,13 @@ namespace Tnsu.ApprovalRoute.Application.TemplateRoutes;
///
/// Спрашивать ли причину просрочки — так же с уже применённым наследованием.
///
+///
+/// HeadType шага (Chief/DirectionHead/DirectorTansu/ManagingDirectorTansu/DepartmentHead),
+/// если исполнитель задан типом руководителя, иначе null. В отличие от
+/// (реальная должность резолвнутого сотрудника из справочника api.tnsu.kz — свободный
+/// текст), это код роли из самого шага маршрута — чтобы вызывающая сторона могла отличить,
+/// например, «директора Tansu» от «руководителя направления», не разбирая Position текстом.
+///
public sealed record ResolvedRouteStepDto(
int Id,
int OrderNo,
@@ -21,7 +28,8 @@ public sealed record ResolvedRouteStepDto(
bool AllowReassignToOtherApprovers,
string? Warning = null,
int? SlaHours = null,
- bool? AskOverdueReason = null);
+ bool? AskOverdueReason = null,
+ HeadType? PositionCode = null);
public sealed record ResolveTemplateRouteResultDto(
int RouteId,
diff --git a/backend/Tnsu.ApprovalRoute.Application/TemplateRoutes/TemplateRouteService.cs b/backend/Tnsu.ApprovalRoute.Application/TemplateRoutes/TemplateRouteService.cs
index c087d9f..c845f37 100644
--- a/backend/Tnsu.ApprovalRoute.Application/TemplateRoutes/TemplateRouteService.cs
+++ b/backend/Tnsu.ApprovalRoute.Application/TemplateRoutes/TemplateRouteService.cs
@@ -340,7 +340,8 @@ public sealed class TemplateRouteService(
step.AllowReassignToOtherApprovers,
combinedWarning.Length == 0 ? null : combinedWarning,
step.SlaHours ?? requestType.SlaHours,
- step.AskOverdueReason ?? requestType.AskOverdueReason);
+ step.AskOverdueReason ?? requestType.AskOverdueReason,
+ step.HeadType is null or HeadType.None ? null : step.HeadType);
}
///
diff --git a/backend/tests/Tnsu.ApprovalRoute.IntegrationTests/ApplicationServices/TemplateRouteServiceTests.cs b/backend/tests/Tnsu.ApprovalRoute.IntegrationTests/ApplicationServices/TemplateRouteServiceTests.cs
index b7f7201..031c277 100644
--- a/backend/tests/Tnsu.ApprovalRoute.IntegrationTests/ApplicationServices/TemplateRouteServiceTests.cs
+++ b/backend/tests/Tnsu.ApprovalRoute.IntegrationTests/ApplicationServices/TemplateRouteServiceTests.cs
@@ -182,6 +182,8 @@ public sealed class TemplateRouteServiceTests : IClassFixture