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