"""Advisor Agent HTTP request DTOs.""" from __future__ import annotations from typing import Any, Literal from pydantic import BaseModel, Field class AdvisorDraftSaveReq(BaseModel): title: str | None = Field(default=None, max_length=128) content: str | None = None structured_data: dict[str, Any] | None = None class AdvisorDraftOperateReq(BaseModel): operation: Literal["discard"] class AdvisorRebalanceRunReq(BaseModel): query: str = Field(min_length=1, max_length=4000) class AdvisorChatReq(BaseModel): query: str = Field(min_length=1, max_length=4000) class AdvisorDataQueryReq(BaseModel): query: str = Field(min_length=1, max_length=2000) session_id: str | None = Field(default=None, max_length=64) max_rows: int | None = Field(default=None, gt=0, le=10000) page: int = Field(default=1, ge=1, le=100000) page_size: int = Field(default=100, ge=1, le=10000) sort_by: str | None = Field(default=None, max_length=128) sort_order: Literal["asc", "desc"] = "asc" class AdvisorFundAnalysisReq(BaseModel): query: str = Field(min_length=1, max_length=4000) class AdvisorTalkScriptReq(BaseModel): query: str = Field(min_length=1, max_length=4000)