from pydantic import BaseModel, ConfigDict from datetime import datetime from typing import Optional, Literal class LocationSearchResult(BaseModel): source: Literal["local", "nominatim"] location_id: Optional[int] = None name: str address: str class LocationCreate(BaseModel): name: str address: str category: str = "other" notes: Optional[str] = None class LocationUpdate(BaseModel): name: Optional[str] = None address: Optional[str] = None category: Optional[str] = None notes: Optional[str] = None class LocationResponse(BaseModel): id: int name: str address: str category: str notes: Optional[str] created_at: datetime updated_at: datetime model_config = ConfigDict(from_attributes=True)