Files
AutonetSellCar/backend/fetch_perf_check.py
AutonetSellCar Deploy 1f0dcb1ddb Initial commit: AutonetSellCar platform with deployment system
- Frontend: Next.js 14 with TypeScript
- Backend: FastAPI with SQLAlchemy
- Agent: Carmodoo sync agent
- Deployment: Docker Compose based staging/production setup
- Scripts: Automated deployment with rollback support

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 13:24:39 +09:00

92 lines
3.7 KiB
Python

"""성능점검표 가져오기 스크립트"""
import asyncio
import sys
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, '.')
from app.api.carmodoo import carmodoo_client
from app.database import SessionLocal
from app.models import Car, CarPerformanceCheck
async def fetch_and_save():
db = SessionLocal()
try:
# 1. 최근 차량 중 성능점검표 없는 것 확인
cars = db.query(Car).order_by(Car.id.desc()).limit(5).all()
print("Recent cars:")
for c in cars:
perf = db.query(CarPerformanceCheck).filter(CarPerformanceCheck.car_id == c.id).first()
print(f" ID {c.id}: {c.source_id} - has_perf: {perf is not None}")
# K5 차량 (ID 6) 처리
car = db.query(Car).filter(Car.id == 6).first()
if not car:
print("Car ID 4 not found")
return
print(f"Car: {car.car_name}, source_id: {car.source_id}")
# 2. 기존 성능점검표 삭제
existing = db.query(CarPerformanceCheck).filter(CarPerformanceCheck.car_id == 4).first()
if existing:
db.delete(existing)
db.commit()
print("Deleted existing performance check")
# 3. 카모두에서 성능점검표 가져오기
print(f"Fetching performance check for car_no: {car.source_id}")
result = await carmodoo_client.get_performance_check(car.source_id)
print(f"Result found: {result.get('found')}")
print(f"Check number: {result.get('check_num')}")
if result.get('found') and result.get('data'):
perf_data = result['data']
print(f"Performance check data keys: {perf_data.keys()}")
# 4. DB에 저장
performance_check = CarPerformanceCheck(
car_id=car.id,
check_number=perf_data.get("check_number"),
check_date=perf_data.get("check_date"),
valid_until=perf_data.get("valid_until"),
car_number=perf_data.get("car_number"),
first_registration=perf_data.get("first_registration"),
mileage=perf_data.get("mileage"),
mileage_status=perf_data.get("mileage_status"),
seize_count=perf_data.get("seize_count", 0),
collateral_count=perf_data.get("collateral_count", 0),
is_flood_damaged=perf_data.get("is_flood_damaged", False),
is_fire_damaged=perf_data.get("is_fire_damaged", False),
is_total_loss=perf_data.get("is_total_loss", False),
usage_history=perf_data.get("usage_history"),
is_rental_used=perf_data.get("is_rental_used", False),
engine_status=perf_data.get("engine_status"),
transmission_status=perf_data.get("transmission_status"),
power_delivery_status=perf_data.get("power_delivery_status"),
steering_status=perf_data.get("steering_status"),
brake_status=perf_data.get("brake_status"),
electrical_status=perf_data.get("electrical_status"),
fuel_system_status=perf_data.get("fuel_system_status"),
raw_data=perf_data,
raw_html=result.get("raw_html", ""),
)
db.add(performance_check)
db.commit()
print(f"Saved performance check: {perf_data.get('check_number')}")
else:
print("No performance check data found from Carmodoo")
print(f"Full result: {result}")
except Exception as e:
print(f"Error: {e}")
import traceback
traceback.print_exc()
finally:
db.close()
if __name__ == "__main__":
asyncio.run(fetch_and_save())