diff --git a/backend/app/api/cars.py b/backend/app/api/cars.py
index 8570fd7..8760eba 100644
--- a/backend/app/api/cars.py
+++ b/backend/app/api/cars.py
@@ -122,6 +122,54 @@ def get_cars(
)
+# Makers - Must be defined before /{car_id} to avoid route conflict
+@router.get("/makers/", response_model=List[CarMakerResponse])
+def get_makers(db: Session = Depends(get_db)):
+ """제조사 목록 조회"""
+ return db.query(CarMaker).all()
+
+
+@router.post("/makers/", response_model=CarMakerResponse)
+def create_maker(maker_data: CarMakerCreate, db: Session = Depends(get_db)):
+ """제조사 등록"""
+ existing = db.query(CarMaker).filter(CarMaker.code == maker_data.code).first()
+ if existing:
+ return existing
+
+ maker = CarMaker(**maker_data.dict())
+ db.add(maker)
+ db.commit()
+ db.refresh(maker)
+ return maker
+
+
+# Models - Must be defined before /{car_id} to avoid route conflict
+@router.get("/models/", response_model=List[CarModelResponse])
+def get_models(maker_id: Optional[int] = None, db: Session = Depends(get_db)):
+ """모델 목록 조회"""
+ query = db.query(CarModel)
+ if maker_id:
+ query = query.filter(CarModel.maker_id == maker_id)
+ return query.all()
+
+
+@router.post("/models/", response_model=CarModelResponse)
+def create_model(model_data: CarModelCreate, db: Session = Depends(get_db)):
+ """모델 등록"""
+ existing = db.query(CarModel).filter(
+ CarModel.code == model_data.code,
+ CarModel.maker_id == model_data.maker_id
+ ).first()
+ if existing:
+ return existing
+
+ model = CarModel(**model_data.dict())
+ db.add(model)
+ db.commit()
+ db.refresh(model)
+ return model
+
+
@router.get("/{car_id}", response_model=CarResponse)
def get_car(car_id: int, admin: bool = Query(False), db: Session = Depends(get_db)):
"""차량 상세 조회"""
@@ -295,54 +343,6 @@ def delete_car(car_id: int, db: Session = Depends(get_db)):
raise HTTPException(status_code=500, detail=f"Delete failed: {str(e)}")
-# Makers
-@router.get("/makers/", response_model=List[CarMakerResponse])
-def get_makers(db: Session = Depends(get_db)):
- """제조사 목록 조회"""
- return db.query(CarMaker).all()
-
-
-@router.post("/makers/", response_model=CarMakerResponse)
-def create_maker(maker_data: CarMakerCreate, db: Session = Depends(get_db)):
- """제조사 등록"""
- existing = db.query(CarMaker).filter(CarMaker.code == maker_data.code).first()
- if existing:
- return existing
-
- maker = CarMaker(**maker_data.dict())
- db.add(maker)
- db.commit()
- db.refresh(maker)
- return maker
-
-
-# Models
-@router.get("/models/", response_model=List[CarModelResponse])
-def get_models(maker_id: Optional[int] = None, db: Session = Depends(get_db)):
- """모델 목록 조회"""
- query = db.query(CarModel)
- if maker_id:
- query = query.filter(CarModel.maker_id == maker_id)
- return query.all()
-
-
-@router.post("/models/", response_model=CarModelResponse)
-def create_model(model_data: CarModelCreate, db: Session = Depends(get_db)):
- """모델 등록"""
- existing = db.query(CarModel).filter(
- CarModel.code == model_data.code,
- CarModel.maker_id == model_data.maker_id
- ).first()
- if existing:
- return existing
-
- model = CarModel(**model_data.dict())
- db.add(model)
- db.commit()
- db.refresh(model)
- return model
-
-
# ==================== Soldout APIs ====================
@router.post("/{car_id}/soldout")
diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx
index cef2fc1..2a77270 100644
--- a/frontend/src/app/page.tsx
+++ b/frontend/src/app/page.tsx
@@ -47,20 +47,18 @@ export default function Home() {