"""Request models for ERP AI Assistant API. This module defines Pydantic models for API request validation. """ from typing import Optional from pydantic import BaseModel, Field class AnalyzeRequest(BaseModel): """Request model for requirement analysis. Attributes: input_type: Type of input - 'natural_language' or 'structured' content: Requirement content text session_id: Optional session ID for context continuity """ input_type: str = Field( ..., description="输入类型: natural_language | structured" ) content: str = Field(..., description="需求内容") session_id: Optional[str] = Field(None, description="会话ID") model_config = { "json_schema_extra": { "examples": [ { "input_type": "natural_language", "content": "创建一个销售订单管理页面", "session_id": "session-123" } ] } } class GenerateRequest(BaseModel): """Request model for config generation. Attributes: session_id: Session ID from previous analysis requirements: Structured requirements from analysis """ session_id: str = Field(..., description="会话ID") requirements: dict = Field(..., description="结构化需求") model_config = { "json_schema_extra": { "examples": [ { "session_id": "session-123", "requirements": { "功能名称": "销售订单管理", "功能类型": "列表页面" } } ] } } class ExecuteRequest(BaseModel): """Request model for config execution. Attributes: session_id: Session ID for tracking confirmed: User confirmation flag backup_enabled: Whether to create backup before execution """ session_id: str = Field(..., description="会话ID") confirmed: bool = Field(False, description="用户确认标识") backup_enabled: bool = Field(True, description="是否启用备份") model_config = { "json_schema_extra": { "examples": [ { "session_id": "session-123", "confirmed": True, "backup_enabled": True } ] } }