"""Response models for ERP AI Assistant API. This module defines Pydantic models for API response formatting. """ from typing import Any, Optional from pydantic import BaseModel, Field class AnalyzeResponse(BaseModel): """Response model for requirement analysis. Attributes: session_id: Session ID for this analysis status: Processing status data: Structured requirement analysis result """ session_id: str = Field(..., description="会话ID") status: str = Field(..., description="处理状态") data: dict = Field(..., description="结构化需求分析结果") model_config = { "json_schema_extra": { "examples": [ { "session_id": "session-123", "status": "success", "data": { "功能名称": "销售订单管理", "功能类型": "列表页面" } } ] } } class GenerateResponse(BaseModel): """Response model for config generation. Attributes: session_id: Session ID status: Processing status data: Generated SQL configuration """ session_id: str = Field(..., description="会话ID") status: str = Field(..., description="处理状态") data: dict = Field(..., description="生成的SQL配置") model_config = { "json_schema_extra": { "examples": [ { "session_id": "session-123", "status": "success", "data": { "sql_list": ["INSERT INTO SYS_FORM ...", "INSERT INTO SYS_MENU ..."] } } ] } } class ExecuteResponse(BaseModel): """Response model for config execution. Attributes: execution_id: Unique execution ID status: Execution status message: Human-readable result message """ execution_id: str = Field(..., description="执行ID") status: str = Field(..., description="执行状态") message: str = Field(..., description="执行结果消息") model_config = { "json_schema_extra": { "examples": [ { "execution_id": "exec-456", "status": "success", "message": "成功执行 5 条SQL" } ] } } class ErrorResponse(BaseModel): """Response model for errors. Attributes: error: Error details dictionary """ error: dict = Field(..., description="错误详情") model_config = { "json_schema_extra": { "examples": [ { "error": { "code": "VALIDATION_ERROR", "message": "Invalid input", "details": "Field 'input_type' must be 'natural_language' or 'structured'" } } ] } } class HealthResponse(BaseModel): """Response model for health check. Attributes: status: Service health status version: Application version """ status: str = Field(..., description="服务状态") version: str = Field(default="1.0.0", description="版本号") model_config = { "json_schema_extra": { "examples": [{"status": "healthy", "version": "1.0.0"}] } }