""" Pydantic 数据模型 """ from pydantic import BaseModel from typing import Optional, Dict, Any, List from datetime import datetime # ============ 认证相关 ============ class Token(BaseModel): access_token: str token_type: str = "bearer" class UserLogin(BaseModel): username: str password: str class UserChangePassword(BaseModel): old_password: str new_password: str # ============ 客户相关 ============ class CustomerBase(BaseModel): name: str country: Optional[str] = None source_country: Optional[str] = None notes: Optional[str] = None class CustomerCreate(CustomerBase): import_data: Optional[Dict] = None export_data: Optional[Dict] = None raw_data: Optional[Dict] = None class CustomerResponse(CustomerBase): id: int import_data: Optional[Dict] = None export_data: Optional[Dict] = None created_at: datetime class Config: from_attributes = True # ============ 发现/搜索相关 ============ class SearchRequest(BaseModel): keyword: str page: int = 1 page_size: int = 10 class SearchResult(BaseModel): name: str country: Optional[str] = None source: str = "fumamx" class CompanyDetailRequest(BaseModel): name: str country: Optional[str] = "" # ============ 设置相关 ============ class CookieSetting(BaseModel): cookie_content: str class SystemStatus(BaseModel): logged_in: bool user: Optional[str] = None cookie_valid: bool tokens_valid: bool = False