from pydantic import BaseModel from datetime import datetime from typing import Optional class RefreshBase(BaseModel): routing_key: str country: Optional[str] = None city: Optional[str] = None visa_type: Optional[str] = None snapshot_source: str class RefreshStart(BaseModel): routing_key: str country: str city: str visa_type: str snapshot_source: str class RefreshFail(RefreshBase): error: str class RefreshStatusOut(BaseModel): routing_key: str country: str city: str visa_type: str snapshot_source: str last_refresh_at: datetime last_success_at: Optional[datetime] last_error: Optional[str] updated_at: datetime model_config = { "from_attributes": True }