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
|
# Extract car data
|
||||||
car_data = vehicle_data.car_data
|
car_data = vehicle_data.car_data
|
||||||
source_id = str(car_data.get("id", ""))
|
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
|
# Check if car already exists in cars table
|
||||||
existing_car = None
|
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(
|
existing_car = db.query(Car).filter(
|
||||||
Car.source == "carmodoo",
|
Car.source == "carmodoo",
|
||||||
Car.source_id == source_id
|
Car.source_id == source_id
|
||||||
@@ -349,6 +356,8 @@ def admin_add_vehicle(
|
|||||||
car_id = None
|
car_id = None
|
||||||
if existing_car:
|
if existing_car:
|
||||||
car_id = existing_car.id
|
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:
|
elif source_id:
|
||||||
# Create new car record from car_data
|
# Create new car record from car_data
|
||||||
new_car = Car(
|
new_car = Car(
|
||||||
|
|||||||
@@ -1121,6 +1121,7 @@ export default function CarsAdminPage() {
|
|||||||
request_id: parseInt(requestId),
|
request_id: parseInt(requestId),
|
||||||
car_data: {
|
car_data: {
|
||||||
id: car.id.toString(),
|
id: car.id.toString(),
|
||||||
|
local_car_id: car.id, // 로컬 DB에 이미 있는 차량임을 표시
|
||||||
car_name: car.car_name,
|
car_name: car.car_name,
|
||||||
maker_name: car.maker?.name,
|
maker_name: car.maker?.name,
|
||||||
model_name: car.model?.name,
|
model_name: car.model?.name,
|
||||||
|
|||||||
Reference in New Issue
Block a user