Жизненный цикл заказа
Каждый заказ проходит одни и те же статусы. Переходы проверяет сервер, а каждое изменение записывается в журнал заказа.
Дополнительные конечные статусы: CANCELLED и DISPUTED.
Статусы
| Статус | Значение | Кто переводит дальше |
|---|---|---|
DRAFT | Черновик, виден только автору | Заказчик публикует |
OPEN | Открыт для откликов | Заказчик назначает исполнителя |
ASSIGNED | Исполнитель выбран, контакты открыты, цена зафиксирована | Исполнитель отмечает начало |
IN_PROGRESS | Работа идёт | Исполнитель сообщает о завершении |
COMPLETION_PENDING | Ждём подтверждения заказчика | Заказчик подтверждает или открывает спор. Через 72 часа без ответа заказ закрывается сам |
COMPLETED | Завершён, можно оставить отзывы | — |
CANCELLED | Отменён одной из сторон до завершения | — |
DISPUTED | Открыт спор, решает модератор | Модератор |
Прямое приглашение
Приглашение из каталога создаёт заказ сразу в статусе OPEN с одним приглашённым. Когда рабочий принимает приглашение, заказ переходит в ASSIGNED.
Смена статуса через API
POST /v1/jobs/job_51ad/transitions
Idempotency-Key: 0b8e...
Content-Type: application/json
{ "to": "COMPLETION_PENDING", "comment": "Плитка уложена, затирка готова" }
Если переход недопустим (например, заказ уже отменён), сервер вернёт 409 с кодом invalid_transition. Одновременные запросы, например две попытки назначить разных исполнителей, сервер обрабатывает так, что выигрывает только один.
Журнал заказа
Записываются все переходы, отмены с причиной, изменения согласованной цены и момент раскрытия контактов. Журнал используется при разборе споров.
Отзывы
После COMPLETED обе стороны могут оставить отзыв. Отзывы публикуются, когда ответили оба, или через 7 дней.