1bf8d4ca11
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/22
77 lines
3.2 KiB
C#
77 lines
3.2 KiB
C#
namespace Tnsu.ApprovalRoute.Application.RequestManage;
|
|
|
|
// Формы 1:1 с фронтендом (frontend/src/webparts/approvalAdmin/models/requestManage.ts,
|
|
// manageByUser.ts) — эти DTO заменяют собой то, что раньше собирал PnP-клиент
|
|
// НАПРЯМУЮ в SharePoint от имени текущего пользователя (см. requestManageService.ts):
|
|
// тут это делает бэкенд от имени приложения (см. ISharePointClient), поэтому
|
|
// результат не зависит от прав конкретного пользователя на списки SharePoint.
|
|
|
|
/// <summary>Заявка (строка списка «… — данные»), как её видит комбобокс выбора заявки.</summary>
|
|
public sealed record ManagedRequestSummaryDto(
|
|
int Id,
|
|
string Title,
|
|
string Status,
|
|
/// <summary>ISO 8601 или пустая строка.</summary>
|
|
string Created,
|
|
string AuthorName,
|
|
string? UniqueCode,
|
|
/// <summary>Партиция (серверный относительный url списка данных), где физически лежит заявка.</summary>
|
|
string ListId);
|
|
|
|
public sealed record ManagedRequestPageDto(IReadOnlyList<ManagedRequestSummaryDto> Items, bool HasMore);
|
|
|
|
/// <summary>Строка списка «… — согласование».</summary>
|
|
public sealed record ManagedApprovalRowDto(
|
|
int Id,
|
|
int TicketId,
|
|
int? ApproverId,
|
|
string ApproverName,
|
|
string ApproverEmail,
|
|
string Position,
|
|
string Status,
|
|
/// <summary>ISO 8601 или пустая строка — форматирование под «дд.мм.гггг» остаётся на фронтенде.</summary>
|
|
string DateIso,
|
|
string Comment,
|
|
double Order,
|
|
bool AllowReassign,
|
|
string Phase,
|
|
int? SlaHours,
|
|
bool? AskOverdueReason);
|
|
|
|
/// <summary>Заявка + полный маршрут (обе фазы) — для экрана редактирования заявок.</summary>
|
|
public sealed record ManagedRequestMatrixDto(
|
|
ManagedRequestSummaryDto Request,
|
|
string SiteUrl,
|
|
string DataListTitle,
|
|
string DataListUrl,
|
|
string ApprovalListTitle,
|
|
IReadOnlyList<ManagedApprovalRowDto> Rows);
|
|
|
|
/// <summary>
|
|
/// Строка согласования, найденная сразу по ВСЕМ типам заявок и партициям — для
|
|
/// экрана «Заявки по согласующему» (UserApprovalRow во фронтенде — тот же набор
|
|
/// полей, что и ManagedApprovalRowDto, только развёрнутый, а не вложенный).
|
|
/// </summary>
|
|
public sealed record UserApprovalRowDto(
|
|
int Id,
|
|
int TicketId,
|
|
int? ApproverId,
|
|
string ApproverName,
|
|
string ApproverEmail,
|
|
string Position,
|
|
string Status,
|
|
string DateIso,
|
|
string Comment,
|
|
double Order,
|
|
bool AllowReassign,
|
|
string Phase,
|
|
int? SlaHours,
|
|
bool? AskOverdueReason,
|
|
int RequestTypeId,
|
|
string RequestTypeName,
|
|
string SiteUrl,
|
|
string ListId,
|
|
string ApprovalListTitle,
|
|
string RequestTitle,
|
|
string? RequestUniqueCode);
|