Files
tnsu-approval-route/backend/Tnsu.ApprovalRoute.Application/ListPartitioning/ListPartitionDto.cs
T
2026-08-17 15:33:54 +05:00

36 lines
1.7 KiB
C#

namespace Tnsu.ApprovalRoute.Application.ListPartitioning;
/// <summary>Одна партиция серии — для админки/портала (вся серия) и для ответа «текущий список».</summary>
/// <param name="IsCurrent">
/// true — в эту партицию идёт запись новых заявок; остальные партиции серии — архив только для чтения.
/// </param>
public sealed record RequestListPartitionDto(
int Number,
string SiteUrl,
string ListId,
string? Title,
bool IsCurrent,
DateTimeOffset CreatedAt);
/// <summary>Вся серия партиций одного типа заявок — единица ответа bulk-эндпоинта для портала.</summary>
public sealed record RequestTypeListSeriesDto(
int RequestTypeId,
IReadOnlyList<RequestListPartitionDto> Partitions);
/// <summary>Ответ «куда писать новую заявку».</summary>
/// <param name="ItemCount">
/// Сколько элементов сейчас в списке — по нему видно, насколько он близок к порогу.
/// null, если SharePoint не ответил (тогда условие создания следующей партиции не проверялось).
/// </param>
/// <param name="ProvisioningQueued">
/// true — этим запросом поставлена в очередь задача создания следующей партиции серии.
/// </param>
public sealed record CurrentListPartitionDto(
int RequestTypeId,
int Number,
string SiteUrl,
string ListId,
string? Title,
int? ItemCount = null,
bool ProvisioningQueued = false);