작업 내용
docs/백엔드_기능명세.md Module B 섹션 참고.
신규 파일: backend/api/admin/menu.py. backend/dao/menu_dao.py/backend/schemas/menu_schemas.py에
관리자용 함수·스키마(CategoryIn, MenuItemIn, MenuOptionIn) 추가.
API
| Method |
Path |
| POST/PATCH/DELETE |
/api/admin/categories, /api/admin/categories/{id} |
| POST/PATCH/DELETE |
/api/admin/menu/items, /api/admin/menu/items/{id} |
| POST/PATCH/DELETE |
/api/admin/menu/items/{id}/options, .../options/{option_id} |
응답은 기존 CategoryOut/MenuItemOut/MenuOptionOut 재사용. 진행 중인 주문에 포함된 메뉴는
하드 삭제 금지(is_available=False 소프트 삭제만, 하드 삭제 시도 시 409).
★ 중요: 캐시 무효화 연동
메뉴 CRUD(생성/수정/삭제) 끝에서 ai_modules/llm/rag.py의 invalidate_cache()를 반드시 호출한다.
이 함수는 이미 정의되어 있지만 현재 어디서도 호출되지 않아, 메뉴를 바꿔도 음성 주문 Tool
(search_menu)이 옛 데이터로 검색한다.
완료 기준
참고
docs/백엔드_기능명세.md Module B. 선행 조건: #22(관리자 인증).
작업 내용
docs/백엔드_기능명세.mdModule B 섹션 참고.신규 파일:
backend/api/admin/menu.py.backend/dao/menu_dao.py/backend/schemas/menu_schemas.py에관리자용 함수·스키마(
CategoryIn,MenuItemIn,MenuOptionIn) 추가.API
/api/admin/categories,/api/admin/categories/{id}/api/admin/menu/items,/api/admin/menu/items/{id}/api/admin/menu/items/{id}/options,.../options/{option_id}응답은 기존
CategoryOut/MenuItemOut/MenuOptionOut재사용. 진행 중인 주문에 포함된 메뉴는하드 삭제 금지(
is_available=False소프트 삭제만, 하드 삭제 시도 시 409).★ 중요: 캐시 무효화 연동
메뉴 CRUD(생성/수정/삭제) 끝에서
ai_modules/llm/rag.py의invalidate_cache()를 반드시 호출한다.이 함수는 이미 정의되어 있지만 현재 어디서도 호출되지 않아, 메뉴를 바꿔도 음성 주문 Tool
(
search_menu)이 옛 데이터로 검색한다.완료 기준
GET /api/menu에 즉시 반영참고
docs/백엔드_기능명세.mdModule B. 선행 조건: #22(관리자 인증).