"""이용 후기 검수 — 어드민 진입점(:9801)에만 붙인다.""" import uuid from fastapi import APIRouter, Depends, Query from pydantic import BaseModel from router.v1.validator.dependencies import RemoveNoneResponse from services.review_service import ReviewService router = APIRouter(prefix="/v1/admin/review", tags=["Review"]) class ReviewItem(BaseModel): review_id: str place_id: str place_name: str body: str nickname: str status: int created_at: str class ResReviews(BaseModel): items: list[ReviewItem] = [] total: int = 0 class ReqDecide(BaseModel): review_ids: list[uuid.UUID] publish: bool class ResDecide(BaseModel): changed: int = 0 @router.get(path="/list", response_model=ResReviews, summary="후기 검수 목록") async def list_reviews( status: int = Query(default=1, ge=1, le=3), limit: int = Query(default=100, ge=1, le=300), service: ReviewService = Depends(), ): return RemoveNoneResponse(await service.list_for_review(status, limit)) @router.post(path="/decide", response_model=ResDecide, summary="후기 게재 · 반려") async def decide(body: ReqDecide, service: ReviewService = Depends()): return RemoveNoneResponse(await service.decide(body.review_ids, publish=body.publish))