diff --git a/backend/app/api/hero_banners.py b/backend/app/api/hero_banners.py index 13dd731..d2d4e91 100644 --- a/backend/app/api/hero_banners.py +++ b/backend/app/api/hero_banners.py @@ -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") diff --git a/backend/app/schemas/hero_banner.py b/backend/app/schemas/hero_banner.py index 95a0f77..d81dfaf 100644 --- a/backend/app/schemas/hero_banner.py +++ b/backend/app/schemas/hero_banner.py @@ -103,3 +103,8 @@ class HeroBannerLocalizedResponse(BaseModel): class Config: from_attributes = True + + +# 배너 순서 재정렬 요청 +class BannerReorderRequest(BaseModel): + car_ids: list[int] diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index bbe987b..7835621 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -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; },