import json from typing import List from models.listing import DestinationMode, Route, RouteLegStep from rec import routing class RouteSerializer: @staticmethod def serialize(route): ... @staticmethod def deserialize(route_data_json: str) -> dict[DestinationMode, List[Route]]: json_data = json.loads(route_data_json) destimation_routes = {} for destination_mode_str, routes_json in json_data.items(): destination_mode = DestinationMode( destination_address=json.loads(destination_mode_str)[ "destination_address" ], travel_mode=routing.TravelMode( json.loads(destination_mode_str)["travel_mode"] ), ) parsed_route = json.loads(routes_json[0]) routes = [ Route( legs=[ RouteLegStep( distance_meters=step["distance_meters"], duration_s=step["duration_s"], travel_mode=routing.TravelMode(step["travel_mode"]), ) for step in parsed_route["legs"] ], distance_meters=parsed_route["distance_meters"], duration_s=int(parsed_route["duration_s"]), ) ] destimation_routes[destination_mode] = routes return destimation_routes