You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

пре 1 година
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from sqlalchemy.orm import Session
  2. from schemas.vehicle import CreateVehicle, OutputVehicle, UpdateVehicle
  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_object = Vehicle(
  7. **vehicle.model_dump(),
  8. Fuel=0,
  9. AssignedDriverIds=[],
  10. CurrentLocation=[],
  11. MaintenanceNotes=[]
  12. )
  13. db.add(vehicle_object)
  14. db.commit()
  15. db.refresh(vehicle_object)
  16. return vehicle
  17. def assign_vehicle_driver(vehicle_id: int, driver_id: int, db: Session):
  18. vehicledb = db.query(Vehicle).filter(Vehicle.Id == vehicle_id)
  19. vehicle = vehicledb.first()
  20. if not vehicle:
  21. return "novehicle"
  22. if driver_id in vehicle.AssignedDriverIds:
  23. return "alreadyassigned"
  24. if verify_driver_exists(driver_id=driver_id, db=db):
  25. print(vehicle.AssignedDriverIds)
  26. vehicledb.update({"AssignedDriverIds": vehicle.AssignedDriverIds + [driver_id]})
  27. print(vehicle.AssignedDriverIds)
  28. db.add(vehicle)
  29. db.commit()
  30. db.refresh(vehicle)
  31. return vehicle
  32. # return a 404 error if the driver does not exist
  33. return "nodriver"
  34. def list_vehicles(db: Session):
  35. vehicles = db.query(Vehicle).all()
  36. return vehicles
  37. def get_vehicle_by_id(vehicle_id: int, db: Session):
  38. vehicle = db.query(Vehicle).filter(Vehicle.Id == vehicle_id).first()
  39. return vehicle
  40. def replace_vehicle_data(id: int, vehicle: UpdateVehicle, db: Session):
  41. vehicle_db = db.query(Vehicle).filter(Vehicle.Id == id)
  42. vehicle_object = vehicle_db.first()
  43. if not vehicle_object:
  44. return "vehiclenotfound"
  45. vehicle_object.AssignedDriverIds = vehicle.AssignedDriverIds
  46. vehicle_object.CurrentLocation = vehicle.CurrentLocation
  47. vehicle_object.Fuel = vehicle.Fuel
  48. vehicle_object.LicensePlate = vehicle.LicensePlate
  49. vehicle_object.MaintenanceNotes = vehicle.MaintenanceNotes
  50. vehicle_object.Mileage = vehicle.Mileage
  51. vehicle_object.Model = vehicle.Model
  52. vehicle_object.Type = vehicle.Type
  53. vehicle_object.Year = vehicle.Year
  54. print(vehicle_object)
  55. db.add(vehicle_object)
  56. db.commit()
  57. return vehicle_object