fix: Prevent duplicate car creation when adding from All Cars tab
- Backend: Check local_car_id first before creating new car - Frontend: Pass local_car_id to indicate car already exists in DB
This commit is contained in:
@@ -337,10 +337,17 @@ def admin_add_vehicle(
|
||||
# Extract car data
|
||||
car_data = vehicle_data.car_data
|
||||
source_id = str(car_data.get("id", ""))
|
||||
local_car_id = car_data.get("local_car_id") # Already exists in local DB
|
||||
|
||||
# Check if car already exists in cars table
|
||||
existing_car = None
|
||||
if source_id:
|
||||
|
||||
# First, check by local_car_id (for cars already in local DB)
|
||||
if local_car_id:
|
||||
existing_car = db.query(Car).filter(Car.id == int(local_car_id)).first()
|
||||
|
||||
# If not found, check by carmodoo source_id
|
||||
if not existing_car and source_id:
|
||||
existing_car = db.query(Car).filter(
|
||||
Car.source == "carmodoo",
|
||||
Car.source_id == source_id
|
||||
@@ -349,6 +356,8 @@ def admin_add_vehicle(
|
||||
car_id = None
|
||||
if existing_car:
|
||||
car_id = existing_car.id
|
||||
# Ensure local_car_id is in car_data for frontend
|
||||
car_data["local_car_id"] = car_id
|
||||
elif source_id:
|
||||
# Create new car record from car_data
|
||||
new_car = Car(
|
||||
|
||||
@@ -1121,6 +1121,7 @@ export default function CarsAdminPage() {
|
||||
request_id: parseInt(requestId),
|
||||
car_data: {
|
||||
id: car.id.toString(),
|
||||
local_car_id: car.id, // 로컬 DB에 이미 있는 차량임을 표시
|
||||
car_name: car.car_name,
|
||||
maker_name: car.maker?.name,
|
||||
model_name: car.model?.name,
|
||||
|
||||
Reference in New Issue
Block a user