diff --git a/backend/app/api/cc.py b/backend/app/api/cc.py index f4ff8a6..9f19313 100644 --- a/backend/app/api/cc.py +++ b/backend/app/api/cc.py @@ -8,7 +8,7 @@ import stripe import logging from ..database import get_db -from ..models import User, Car, CarView, PerformanceCheckView, ChargeHistory, CarPerformanceCheck, CCPackage, DEFAULT_CC_PACKAGES +from ..models import User, Car, CarView, PerformanceCheckView, ChargeHistory, CarPerformanceCheck, CCPackage, DEFAULT_CC_PACKAGES, VehicleRequest, RequestVehicle from ..models.settings import SystemSettings from ..models.user import PaymentSettings from ..schemas import UserResponse, CarViewResponse, PurchaseViewRequest @@ -135,13 +135,27 @@ def check_car_view( db: Session = Depends(get_db) ): """Check if user has purchased view access for a specific car""" + # Check if user purchased view access existing_view = db.query(CarView).filter( CarView.user_id == current_user.id, CarView.car_id == car_id ).first() + if existing_view: + return { + "has_access": True, + "cc_balance": current_user.cc_balance or 0 + } + + # Check if this car was recommended to the user (paid 1 CC for recommendation) + recommended_vehicle = db.query(RequestVehicle).join(VehicleRequest).filter( + VehicleRequest.user_id == current_user.id, + RequestVehicle.car_id == car_id, + RequestVehicle.is_approved == True + ).first() + return { - "has_access": existing_view is not None, + "has_access": recommended_vehicle is not None, "cc_balance": current_user.cc_balance or 0 }