Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 

47 řádky
1.4 KiB

  1. from sqlalchemy.orm import Session
  2. from schemas.vehicle import CreateVehicle, OutputVehicle
  3. from db.models.vehicle import Vehicle
  4. from db.repository.user import verify_driver_exists
  5. def create_new_vehicle(vehicle: CreateVehicle, db: Session):
  6. vehicle = Vehicle(
  7. Model=vehicle.model,
  8. Year=vehicle.year,
  9. LicensePlate=vehicle.license_plate,
  10. Type=vehicle.type,
  11. Mileage=vehicle.mileage,
  12. AssignedDriverIds=[],
  13. CurrentLocation=[],
  14. Fuel=0,
  15. MaintenanceNotes=[],
  16. )
  17. db.add(vehicle)
  18. db.commit()
  19. db.refresh(vehicle)
  20. return vehicle
  21. def assign_vehicle_driver(vehicle_id: int, driver_id: int, db: Session):
  22. vehicledb = db.query(Vehicle).filter(Vehicle.Id == vehicle_id)
  23. vehicle = vehicledb.first()
  24. if not vehicle:
  25. return "novehicle"
  26. if driver_id in vehicle.AssignedDriverIds:
  27. return "alreadyassigned"
  28. if verify_driver_exists(driver_id=driver_id, db=db):
  29. print(vehicle.AssignedDriverIds)
  30. vehicledb.update({"AssignedDriverIds": vehicle.AssignedDriverIds + [driver_id]})
  31. print(vehicle.AssignedDriverIds)
  32. db.add(vehicle)
  33. db.commit()
  34. db.refresh(vehicle)
  35. return vehicle
  36. # return a 404 error if the driver does not exist
  37. return "nodriver"
  38. def list_vehicles(db: Session):
  39. vehicles = db.query(Vehicle).all()
  40. return vehicles