"""Defines the Preferences used as input for trip generation.""" from typing import Optional, Literal from pydantic import BaseModel class Preference(BaseModel) : """ Type of preference. Attributes: type: what kind of landmark type. score: how important that type is. """ type: Literal['sightseeing', 'nature', 'shopping', 'start', 'finish'] score: int # score could be from 1 to 5 # Input for optimization class Preferences(BaseModel) : """" Full collection of preferences needed to generate a personalized trip. """ # Sightseeing / History & Culture (Musées, bâtiments historiques, opéras, églises) sightseeing : Preference # Nature (parcs, jardins, rivières, plages) nature: Preference # Shopping (diriger plutôt vers des zones / rues commerçantes) shopping : Preference max_time_minute: Optional[int] = 3*60 detour_tolerance_minute: Optional[int] = 0