Endpoint: GetInputQueue
Список пакетов очереди обработки с составом (кадры и идентификаторы) для страницы «Обработка очереди». Мягко удалённые пакеты исключены. Поведение — GetInputQueueHandler.
1. Транспорт
GET /api/InputPacket — параметров нет; ответ в единой обёртке (Payload ниже). Пагинации пока нет
(упрощённый просмотр): список отсортирован от новых к старым, мягко удалённые исключены.
2. Endpoint
/// <summary>Endpoint выдачи очереди пакетов.</summary>
public class GetInputQueueEndpoint
{
public GetInputQueueQuery? Input { get; set; }
public GetInputQueueResult? Output { get; set; }
}
3. Query
/// <summary>Запрос очереди (без параметров).</summary>
public class GetInputQueueQuery : BasedQuery
{
}
4. Result
/// <summary>Результат — список пакетов в поле Payload.</summary>
public class GetInputQueueResult : BasedResult
{
public InputQueuePayload? Payload { get; init; }
}
5. Payload
/// <summary>Полезная нагрузка очереди.</summary>
public class InputQueuePayload
{
/// <summary>Пакеты очереди, от новых к старым.</summary>
public QueuePacketItem[] Packets { get; init; } = new QueuePacketItem[0];
}
6. PacketItem / FrameItem / IdentifierItem
/// <summary>Пакет очереди: сводка и состав.</summary>
public class QueuePacketItem
{
public Guid Id { get; init; }
/// <summary>Номер вида П-ГГГГММДД-NNN.</summary>
public string Number { get; init; } = "";
public DateTime QueuedAt { get; init; }
public int FramesCount { get; init; }
/// <summary>Состояние жизненного цикла; пока только `Queued` — обработки ещё нет.</summary>
public string State { get; init; } = "Queued";
public QueueFrameItem[] Frames { get; init; } = new QueueFrameItem[0];
public QueueIdentifierItem[] Identifiers { get; init; } = new QueueIdentifierItem[0];
}
/// <summary>Кадр в составе пакета.</summary>
public class QueueFrameItem
{
public int Order { get; init; }
/// <summary>Русская подпись роли изображения; null — роль ещё не определена (на вводе не задаётся).</summary>
public string? RoleName { get; init; }
/// <summary>Способ получения кадра.</summary>
[Relation]
public ImageSource Source { get; init; }
/// <summary>Ключ хранения кадра (ADR-002); по нему отдаётся содержимое (GetFrameContent).</summary>
public string StorageKey { get; init; } = "";
public string? OriginalFileName { get; init; }
/// <summary>Есть обработанная (нормализованная) версия кадра — ADR-SRV-005.</summary>
public bool Normalized { get; init; }
/// <summary>Флаг качества/режима нормализации (напр. low_quality); null — нет.</summary>
public string? NormalizationFlag { get; init; }
}
/// <summary>Идентификатор в составе пакета: подпись и значение.</summary>
public class QueueIdentifierItem
{
public string Name { get; init; } = "";
public string Value { get; init; } = "";
}
Структурные связи
Использует
- Handler Handler: GetInputQueue
Используется
- Экран Очередь обработки
- Handler Handler: GetInputQueue