def start_ride_helper(session, city, rider_id, vehicle_id): vehicle = session.query(Vehicle).filter_by( city=city, id=vehicle_id ) if self.multi_region else session.query(Vehicle).filter_by( id=vehicle_id) vehicle.update({'status': 'in_use'}) v = vehicle.first() # get promo codes associated with this user's account upcs = session.query(UserPromoCode).filter_by( city=city, user_id=rider_id).all( ) if self.multi_region else session.query( UserPromoCode).filter_by(user_id=rider_id).all() # determine which codes are valid for upc in upcs: promo_code = session.query(PromoCode).filter_by( code=upc.code).first() if promo_code and promo_code.expiration_time > datetime.datetime.now( ): code_to_update = session.query(UserPromoCode).filter_by( city=city, user_id=rider_id, code=upc.code) if self.multi_region else session.query( UserPromoCode).filter_by(user_id=rider_id, code=upc.code) code_to_update.update({'usage_count': upc.usage_count + 1}) r = Ride(city=city, id=MovRGenerator.generate_uuid(), rider_id=rider_id, vehicle_id=vehicle_id, start_address=v.current_location) session.add(r) return {'city': r.city, 'id': r.id}
def add_user_helper(session, city, name, address, credit_card_number): u = User(city=city, id=MovRGenerator.generate_uuid(), name=name, address=address, credit_card=credit_card_number) session.add(u) return {'city': u.city, 'id': u.id}
def add_users_helper(sess, chunk, n): users = [] for i in range(chunk, n): users.append(User(id=MovRGenerator.generate_uuid(), city=city, name=datagen.name(), address=datagen.address(), credit_card=datagen.credit_card_number())) sess.bulk_save_objects(users)
def add_vehicle_helper(session, city, owner_id, current_location, type, vehicle_metadata, status): vehicle_type = type vehicle = Vehicle(id=MovRGenerator.generate_uuid(), type=vehicle_type, city=city, owner_id=owner_id, current_location = current_location, status=status, ext=vehicle_metadata) session.add(vehicle) return {'city': vehicle.city, 'id': vehicle.id}
def add_vehicles_helper(sess, chunk, n): owners = sess.query(User).filter_by(city=city).all() vehicles = [] for i in range(chunk, n): vehicle_type = MovRGenerator.generate_random_vehicle() vehicles.append(Vehicle(id=MovRGenerator.generate_uuid(), type=vehicle_type, city=city, current_location=datagen.address(), owner_id=(random.choice(owners)).id, status=MovRGenerator.get_vehicle_availability(), ext=MovRGenerator.generate_vehicle_metadata(vehicle_type))) sess.bulk_save_objects(vehicles)
def add_rides_helper(sess, chunk, n): users = sess.query(User).filter_by(city=city).all() vehicles = sess.query(Vehicle).filter_by(city=city).all() rides = [] for i in range(chunk, min(chunk + chunk_size, num_rides)): start_time = datetime.datetime.now() - datetime.timedelta(days=random.randint(0, 30)) rides.append(Ride(id=MovRGenerator.generate_uuid(), city=city, rider_id=random.choice(users).id, vehicle_id=random.choice(vehicles).id, start_time=start_time, start_address=datagen.address(), end_address=datagen.address(), revenue=MovRGenerator.generate_revenue(), end_time=start_time + datetime.timedelta(minutes=random.randint(0, 60)))) sess.bulk_save_objects(rides)
def start_ride_helper(session, city, rider_id, vehicle_id): v = session.query(Vehicle).filter_by(city=city, id=vehicle_id).first() # get promo codes associated with this user's account upcs = session.query(UserPromoCode).filter_by(city=city, user_id=rider_id).all() # determine which codes are valid for upc in upcs: promo_code = session.query(PromoCode).filter_by(code = upc.code).first() if promo_code and promo_code.expiration_time > datetime.datetime.now(): upc.usage_count+=1; #@todo: do something with the code r = Ride(city=city, vehicle_city=city, id=MovRGenerator.generate_uuid(), rider_id=rider_id, vehicle_id=vehicle_id, start_address=v.current_location) session.add(r) v.status = "in_use" return {'city': r.city, 'id': r.id}