32 lines
1.8 KiB
TypeScript
32 lines
1.8 KiB
TypeScript
// Домен вкладки «Заявки по согласующему» (ManageByUserScreen) — сводит вместе
|
||
// два независимых источника по одному конкретному человеку: живые строки
|
||
// согласования (SharePoint, requestManageService.ts) и шаблонные шаги
|
||
// маршрутов (Tnsu.ApprovalRoute.Api, TemplateRouteStep с ExecutorEmail).
|
||
import { ManagedApprovalRow } from './requestManage';
|
||
import { TemplateRouteStep } from './templateRouteSteps';
|
||
|
||
/**
|
||
* Строка согласования, найденная сразу по ВСЕМ типам заявок и ВСЕМ их
|
||
* партициям — в отличие от ManagedApprovalRow (одна открытая заявка одного
|
||
* типа), здесь нужен контекст, к какому типу/списку/партиции она относится,
|
||
* чтобы её можно было и показать, и записать обратно через reassignApprover.
|
||
*/
|
||
export interface UserApprovalRow extends ManagedApprovalRow {
|
||
requestTypeId: number;
|
||
requestTypeName: string;
|
||
siteUrl: string;
|
||
/** Партиция списка ДАННЫХ, где физически лежит заявка. */
|
||
listId: string;
|
||
approvalListTitle: string;
|
||
requestTitle: string;
|
||
// eslint-disable-next-line @rushstack/no-new-null -- зеркалит SharePoint: колонки может не быть
|
||
requestUniqueCode: string | null;
|
||
}
|
||
|
||
/** Шаг шаблона маршрута с ExecutorEmail = искомый человек, обогащённый для отображения. */
|
||
export interface UserTemplateStepRow extends TemplateRouteStep {
|
||
requestTypeName: string;
|
||
companyName: string;
|
||
departmentName: string;
|
||
}
|