Fix banner reorder API with proper request schema

- Create BannerReorderRequest Pydantic model for reorder endpoint
- Update frontend to send car_ids wrapped in object
- Fixes 422 Unprocessable Entity on reorder API

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
AutonetSellCar Deploy
2025-12-31 16:21:05 +09:00
parent 3cf6fd2121
commit 3a4475ea28
3 changed files with 10 additions and 4 deletions

View File

@@ -12,6 +12,7 @@ from ..schemas.hero_banner import (
HeroBannerCreate, HeroBannerUpdate, HeroBannerResponse,
HeroBannerListResponse, HeroBannerLocalizedResponse,
HeroBannerSettingsUpdate, HeroBannerSettingsResponse,
BannerReorderRequest,
)
from .auth import get_current_user
from ..models import User
@@ -325,7 +326,7 @@ def toggle_banner(
@router.put("/admin/reorder")
def reorder_banners(
car_ids: List[int] = Body(...),
request: BannerReorderRequest,
db: Session = Depends(get_db),
current_user: User = Depends(get_admin_user)
):
@@ -333,13 +334,13 @@ def reorder_banners(
car_ids: 배너 차량 ID 목록 (원하는 순서대로)
"""
for order, car_id in enumerate(car_ids):
for order, car_id in enumerate(request.car_ids):
banner = db.query(HeroBanner).filter(HeroBanner.car_id == car_id).first()
if banner:
banner.display_order = order
db.commit()
return {"message": "Banner order updated", "count": len(car_ids)}
return {"message": "Banner order updated", "count": len(request.car_ids)}
@router.get("/admin/banner-cars")

View File

@@ -103,3 +103,8 @@ class HeroBannerLocalizedResponse(BaseModel):
class Config:
from_attributes = True
# 배너 순서 재정렬 요청
class BannerReorderRequest(BaseModel):
car_ids: list[int]

View File

@@ -211,7 +211,7 @@ export const heroBannersApi = {
},
adminReorderBanners: async (carIds: number[]): Promise<{ message: string; count: number }> => {
const { data } = await api.put('/hero-banners/admin/reorder', carIds);
const { data } = await api.put('/hero-banners/admin/reorder', { car_ids: carIds });
return data;
},