from pydantic import BaseModel, Field from typing import List, Optional, Dict class OutletTranslations(BaseModel): ko: Optional[str] = None en: Optional[str] = None zh_cn: Optional[str] = None zh_tw: Optional[str] = None ja: Optional[str] = None fr: Optional[str] = None de: Optional[str] = None es: Optional[str] = None it: Optional[str] = None class OutletBase(BaseModel): source_keyword: str # Used to query articles dynamically category: str # people, topics, companies name_translations: OutletTranslations = Field(default_factory=lambda: OutletTranslations()) description_translations: OutletTranslations = Field(default_factory=lambda: OutletTranslations()) image: Optional[str] = None # Deprecated - kept for backward compatibility during migration name: Optional[str] = None description: Optional[str] = None class OutletCreate(OutletBase): pass class OutletUpdate(BaseModel): source_keyword: Optional[str] = None category: Optional[str] = None name_translations: Optional[OutletTranslations] = None description_translations: Optional[OutletTranslations] = None image: Optional[str] = None # Deprecated name: Optional[str] = None description: Optional[str] = None articles: Optional[List[str]] = None class Outlet(OutletBase): class Config: from_attributes = True class OutletList(BaseModel): outlets: List[Outlet] total: int