from __future__ import annotations from typing import Any, Dict, List, Optional from pydantic import BaseModel, Field class FeishuExternalQueryFilter(BaseModel): key: str value: Any class FeishuExternalQueryRequest(BaseModel): keyword: Optional[str] = "" page: int = 1 page_size: int = Field(default=20, alias="pageSize") key: Optional[str] = None user_id: Optional[str] = None employee_id: Optional[str] = None token: Optional[str] = None approval_code: Optional[str] = None linkage_params: Dict[str, Any] = {} page_token: Optional[str] = None query: Optional[str] = None locale: Optional[str] = None filters: List[FeishuExternalQueryFilter] = [] raw: Dict[str, Any] = {} class Config: extra = "allow" class FeishuExternalItem(BaseModel): id: str label: str value: str extra: Dict[str, Any] = {} class FeishuExternalQueryResponse(BaseModel): code: int = 0 msg: str = "ok" total: int = 0 data: List[FeishuExternalItem] = []