45 lines
1.0 KiB
Python
45 lines
1.0 KiB
Python
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] = []
|