Фронтенд для сервиса (#5)
Tests / test (push) Successful in 2m26s

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/5
This commit was merged in pull request #5.
This commit is contained in:
2026-07-30 06:11:24 +00:00
parent 5476c1bab5
commit da158cfd84
114 changed files with 26045 additions and 2 deletions
@@ -0,0 +1,45 @@
// DTO эндпоинта api/template-routes/{routeId}/steps
// (Application/TemplateRouteSteps/*.cs).
import { HeadType, ProjectRole, RouteStepStatus } from './enums';
export interface TemplateRouteStep {
id: number;
orderNo: number;
executorEmail: string | null;
position: string | null;
projectRole: ProjectRole | null;
headType: HeadType | null;
status: RouteStepStatus;
routeId: number;
allowReassignToOtherApprovers: boolean;
/** Предупреждение бэкенда о сохранённом шаге (например, должность не найдена). */
warning?: string | null;
}
export interface CreateTemplateRouteStepInput {
orderNo: number;
executorEmail: string | null;
position: string | null;
projectRole: ProjectRole | null;
headType: HeadType | null;
status: RouteStepStatus;
allowReassignToOtherApprovers: boolean;
}
export type UpdateTemplateRouteStepInput = CreateTemplateRouteStepInput;
export interface PatchTemplateRouteStepInput {
orderNo?: number;
executorEmail?: string | null;
position?: string | null;
projectRole?: ProjectRole | null;
headType?: HeadType | null;
status?: RouteStepStatus;
allowReassignToOtherApprovers?: boolean;
}
// Способ задать исполнителя шага: ровно одно из полей выше должно быть заполнено
// (см. TemplateRouteStepFields.CountFilled на бэкенде). Union-тип, а не строки
// по месту, — чтобы опечатку поймал компилятор.
export type StepExecutorKind = 'email' | 'position' | 'projectRole' | 'headType';