작업 내용
docs/백엔드_기능명세.md Module E 섹션 참고. 매장 운영에 가장 직접적으로 쓰이는 화면.
신규 파일: backend/api/admin/orders.py. backend/dao/order_dao.py에
list_orders, update_order_status 추가.
API
| Method |
Path |
응답 |
| GET |
/api/admin/orders (쿼리: status, order_type) |
list[OrderAdminOut] |
| GET |
/api/admin/orders/{id} |
OrderAdminOut |
| PATCH |
/api/admin/orders/{id}/status |
OrderAdminOut |
MVP 범위: 폴링으로 충분, WebSocket/SSE는 이번 범위 제외.
상태 전이 검증 (라우터 레이어에서만, DAO에는 규칙을 넣지 않음)
RECEIVED → COOKING → READY → COMPLETED 앞으로만 전이 가능(중간 단계 건너뛰기는 허용, 역행은
400). CANCELLED는 COMPLETED가 아닌 모든 상태에서 가능. 이 검증은 PATCH .../status 엔드포인트
전용이며, 환불(#다른 이슈, Module D)은 이 검증을 거치지 않고 update_order_status를 직접 호출해
COMPLETED에서도 CANCELLED로 전이한다 — 완료 후 환불도 가능해야 하므로 의도적으로 별도 경로.
완료 기준
참고
docs/백엔드_기능명세.md Module E. 선행 조건: #20(orders.status), #22(관리자 인증).
작업 내용
docs/백엔드_기능명세.mdModule E 섹션 참고. 매장 운영에 가장 직접적으로 쓰이는 화면.신규 파일:
backend/api/admin/orders.py.backend/dao/order_dao.py에list_orders,update_order_status추가.API
/api/admin/orders(쿼리: status, order_type)list[OrderAdminOut]/api/admin/orders/{id}OrderAdminOut/api/admin/orders/{id}/statusOrderAdminOutMVP 범위: 폴링으로 충분, WebSocket/SSE는 이번 범위 제외.
상태 전이 검증 (라우터 레이어에서만, DAO에는 규칙을 넣지 않음)
RECEIVED → COOKING → READY → COMPLETED앞으로만 전이 가능(중간 단계 건너뛰기는 허용, 역행은400).
CANCELLED는COMPLETED가 아닌 모든 상태에서 가능. 이 검증은PATCH .../status엔드포인트전용이며, 환불(#다른 이슈, Module D)은 이 검증을 거치지 않고
update_order_status를 직접 호출해COMPLETED에서도CANCELLED로 전이한다 — 완료 후 환불도 가능해야 하므로 의도적으로 별도 경로.완료 기준
RECEIVED상태로 즉시 조회됨CANCELLED는COMPLETED가 아닌 모든 상태에서 전이 가능참고
docs/백엔드_기능명세.mdModule E. 선행 조건: #20(orders.status), #22(관리자 인증).