QueueTasksController (Editor)
Назначение
Управление очередью задач панорамной съёмки в контексте редактора: те же операции, что и в Admin (получение списка задач, запуск, завершение, heartbeat, обновление статуса, отмена). Реализация дублируется из Admin.Domain/Features/QueueTasks в Editor.Domain.
Base Route
api/{tenantId}/chessboard/panoramas/editor/queue-tasks (или аналог).
Методы
| Метод | HTTP | Путь | Назначение | Command/Query (Editor Domain) |
|---|---|---|---|---|
| GetPanoramasQueueTasksListByProjectId | GET | projects/{chessboardProjectId} | Список задач очереди по проекту | GetPanoramasQueueTasksListByProjectIdQuery |
| StartQueueTask | POST | {taskId}/start | Запустить задачу | StartQueueTaskCommand |
| CompleteQueueTask | POST | {taskId}/complete | Завершить задачу | CompleteQueueTaskCommand |
| HeartbeatQueueTask | POST | {taskId}/heartbeat | Heartbeat выполняемой задачи | HeartbeatQueueTaskCommand |
| UpdateQueueTaskStatus | PATCH | {taskId}/status | Обновить статус задачи | UpdateQueueTaskStatusCommand |
| CancelQueueTask | POST | {taskId}/cancel | Отменить задачу | CancelQueueTaskCommand |
Входные данные
Идентификатор проекта и задачи передаются в пути. TenantId — из контекста. Тело запроса — для UpdateQueueTaskStatus (новый статус).
Результат
Формат ответов совпадает с QueueTasksController (Admin).
Постановка задачи
Скопировать из Admin.Api контроллер QueueTasks и оставить только перечисленные методы (без AddLayoutPanoramaShootingTask). Связать с Editor.Domain: команды и запросы реализовать в Editor.Domain/Features/QueueTasks по аналогии с Admin.Domain (те же контракты и бизнес-логика).