Files
anyway/backend/src/structs/trip.py
Remy Moll 07dde5ab58
All checks were successful
Build and push docker image / Build (pull_request) Successful in 1m48s
persistence for recurring api calls
2024-07-31 12:54:25 +02:00

28 lines
807 B
Python

from pydantic import BaseModel, Field
from .landmark import Landmark
from .linked_landmarks import LinkedLandmarks
import uuid
class Trip(BaseModel):
uuid: str = Field(default_factory=uuid.uuid4)
total_time: int
first_landmark_uuid: str
@classmethod
def from_linked_landmarks(self, landmarks: LinkedLandmarks, cache_client) -> "Trip":
"""
Initialize a new Trip object and ensure it is stored in the cache.
"""
trip = Trip(
total_time = landmarks.total_time,
first_landmark_uuid = str(landmarks[0].uuid)
)
# Store the trip in the cache
cache_client.set(f"trip_{trip.uuid}", trip)
for landmark in landmarks:
cache_client.set(f"landmark_{landmark.uuid}", landmark)
return trip