GetPanoramasQueueTasksListByProjectIdQuery
Назначение
Получение списка задач очереди панорамной съёмки по идентификатору проекта. Задачи могут быть в статусах Pending, Started, Completed, Canceled, Error, Timeout.
Цель
Вернуть клиенту перечень задач очереди для отображения в админке и мониторинга выполнения.
Query: GetPanoramasQueueTasksListByProjectIdQuery (Входные данные)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| ChessboardProjectId | long | Обязательное | Идентификатор проекта шахматной доски |
примечание
TenantId берётся из контекста запроса.
Result: GetPanoramasQueueTasksListByProjectIdQueryResult (Выходные данные)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| Entries | IReadOnlyCollection<GetPanoramasQueueTasksListByProjectIdQueryResultEntry> | Обязательное | Список задач |
GetPanoramasQueueTasksListByProjectIdQueryResultEntry (ResultEntry)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| TaskId | Guid | Обязательное | Идентификатор задачи |
| TaskType | PanoramaQueueTaskType | Обязательное | Тип задачи |
| Status | PanoramaQueueTaskStatus | Обязательное | Статус |
| PresetIds | Guid[] | Обязательное | Идентификаторы пресетов |
| PropertyLayoutId | long | Обязательное | Идентификатор планировки |
| PropertyObjectId | Guid? | Nullable | Идентификатор объекта (для PropertyPoint) |
| CreatedAt | DateTimeOffset | Обязательное | Дата создания |
| UpdatedAt | DateTimeOffset | Обязательное | Дата обновления |
Валидация
- Проект с ChessboardProjectId должен существовать в ChessboardProjectEntity. При отсутствии — вернуть пустой список или ошибку.
- Очередь по проекту (PanoramasQueueEntity) может отсутствовать — тогда вернуть пустой список.
Бизнес-логика (Handler)
- Получить сущность ChessboardProjectEntity по ChessboardProjectId. Если не найдена — вернуть ошибку «Проект не найден» или пустой список.
- Найти очередь PanoramasQueueEntity по ChessboardProjectId (и TenantId). Если очередь не найдена — вернуть результат с пустым Entries.
- Найти сущности PanoramasQueueTaskEntity по QueueId из таблицы PanoramasQueueTaskEntity.
- Сформировать для каждой задачи ResultEntry (TaskId, TaskType, Status, PresetIds, PropertyLayoutId, PropertyObjectId, CreatedAt, UpdatedAt).
- Вернуть результат клиенту.
Связанные сущности
- ChessboardProjectEntity
- PanoramasQueueEntity
- PanoramasQueueTaskEntity
- PanoramaQueueTaskType, PanoramaQueueTaskStatus
API
QueueTasksController.GetPanoramasQueueTasksListByProjectId — GET projects/{chessboardProjectId}