from typing import Any from pydantic import BaseModel, Field class FeishuTextMessage(BaseModel): receive_id: str | None = Field( default=None, description="chat_id or open_id depending on type.", ) receive_id_type: str = "chat_id" text: str class FeishuCardMessage(BaseModel): receive_id: str | None = None receive_id_type: str = "chat_id" card: dict[str, Any] class FeishuWebhookEvent(BaseModel): type: str | None = None challenge: str | None = None token: str | None = None schema_: str | None = Field(default=None, alias="schema") header: dict[str, Any] | None = None event: dict[str, Any] | None = None class FeishuSendResult(BaseModel): ok: bool provider_response: dict[str, Any] class FeishuCommandRequest(BaseModel): text: str chat_id: str | None = None actor: str = "api" auto_reply: bool = False class FeishuCommandResult(BaseModel): command: str reply_type: str title: str content: str provider_response: dict[str, Any] | None = None