Files
company-ai-platform/app/modules/legacy_mysql/schemas.py
JiuContinent aa81fc5321 ```
feat(ai_agent): 完善AI适配器和服务功能

- 添加OpenClaw和Hermes健康检查接口
- 实现OpenClaw工具调用功能
- 重构AI适配器使用常量定义
- 增加AI技能系统支持
- 更新配置文件中的默认模型提供者设置

refactor(scheduler): 使用常量替换硬编码值

- 将硬编码的actor值替换为ActorValue常量
- 将receive_id_type替换为FeishuReceiveIdType枚举

refactor(audit): 统一审计日志常量使用

- 将硬编码的actor、source、risk_level等值替换为对应常量
- 更新审核服务中的状态和操作常量引用

refactor(approvals): 标准化审批模块常量使用

- 将applicant默认值替换为ActorValue.API常量
- 使用ApprovalStatus常量替代硬编码状态值
- 更新审核操作常量引用
```
2026-07-06 00:02:03 +08:00

58 lines
1.5 KiB
Python

from typing import Any
from pydantic import BaseModel, Field
from app.core.constants import ActorValue
class ReadonlyQueryRequest(BaseModel):
"""Readonly SQL query request for the legacy MySQL connection."""
sql: str = Field(..., description="Readonly SELECT statement.")
params: dict[str, Any] = Field(default_factory=dict)
limit: int = Field(default=100, ge=1, le=500)
class QueryResult(BaseModel):
"""Tabular query result returned as JSON rows."""
columns: list[str]
rows: list[dict[str, Any]]
row_count: int
class LegacyProjectRecord(BaseModel):
"""Raw project row from the legacy project system."""
data: dict[str, Any]
class LegacyProjectSyncRequest(BaseModel):
"""Request body for syncing legacy projects into the internal ledger."""
source_query: str | None = Field(
default=None,
description="Optional SELECT query for project sync.",
)
field_map: dict[str, str] = Field(
default_factory=dict,
description=(
"Map internal project fields to legacy row fields, "
"e.g. {'name': 'project_name'}."
),
)
limit: int = Field(default=100, ge=1, le=500)
dry_run: bool = True
actor: str = ActorValue.API
class LegacyProjectSyncResult(BaseModel):
"""Summary of a legacy project sync operation."""
dry_run: bool
created: int
updated: int
skipped: int
sync_run_code: str | None = None
items: list[dict[str, Any]]