from datetime import date, datetime from pydantic import BaseModel from slugify import slugify class Country(BaseModel): name: str code: str class City(BaseModel): id: int name: str country: Country class Fare(BaseModel): amount: float currency: str class Result(BaseModel): departure: datetime arrival: datetime origin: str destination: str fare: Fare type: str source_id: int destination_id: int free_seats: int carrier: str @property def slug(self) -> str: return self.slugify(self.origin, self.destination, self.departure.date(), self.fare.currency) @staticmethod def slugify(origin: str, destination: str, departure: date, currency: str) -> str: return slugify(" ".join([origin, destination, departure.isoformat(), currency]))