Перейти к основному содержимому

UpdateQueueTaskStatusCommand

Назначение

Обновление статуса задачи в очереди панорамной съёмки. Позволяет установить статус Error, Timeout или иной в соответствии с правилами переходов.

Цель

Отразить в БД смену статуса задачи (например при ошибке выполнения или по таймауту).

Command: UpdateQueueTaskStatusCommand (Входные данные)

ПолеТипОбязательностьОписание
TaskIdGuidОбязательноеИдентификатор задачи
StatusPanoramaQueueTaskStatusОбязательноеНовый статус
примечание

TenantId берётся из контекста запроса.

Result: UpdateQueueTaskStatusCommandResult (Выходные данные)

ПолеТипОбязательностьОписание
SuccessboolОбязательноеПризнак успешного обновления

Валидация

  • Задача с TaskId должна существовать. Если не найдена — вернуть ошибку.
  • Допустимые переходы статусов: из Started в Completed, Error, Timeout; из Pending в Canceled и т.д. (по бизнес-правилам). Недопустимый переход — вернуть ошибку.

Ограничения

  • Нельзя перевести задачу из Completed/Canceled/Error/Timeout обратно в Pending или Started (по правилам системы).

Бизнес-логика (Handler)

  1. Получить сущность PanoramasQueueTaskEntity по TaskId (и TenantId). Если не найдена — вернуть ошибку «Задача не найдена».
  2. Проверить допустимость перехода из текущего Status в новый Status. Если переход запрещён — вернуть ошибку «Недопустимый статус».
  3. Обновить Status и UpdatedAt. Сохранить в БД.
  4. Сформировать результат (Success = true). Вернуть результат клиенту.

Связанные сущности

API

QueueTasksController.UpdateQueueTaskStatus — PATCH {taskId}/status