chore: initial commit — leaudit-platform project skeleton

17-table PostgreSQL schema with full Chinese column comments,
FastAPI project structure (admin/common/modules),
DSL rule files, and schema migration scripts.
This commit is contained in:
wren
2026-04-27 16:48:22 +08:00
commit 535d97a70c
142 changed files with 25219 additions and 0 deletions
@@ -0,0 +1,33 @@
"""评查 VO。"""
from datetime import datetime
from pydantic import BaseModel, Field
class AuditRunVO(BaseModel):
"""评查运行响应。"""
runId: int = Field(..., description="运行ID")
documentId: int = Field(..., description="文档ID")
runNo: int = Field(..., description="执行序号")
status: str = Field(..., description="状态")
phase: str | None = Field(None, description="draft/executed")
totalScore: float | None = Field(None, description="总分")
passedCount: int | None = Field(None, description="通过数")
failedCount: int | None = Field(None, description="失败数")
startedAt: datetime | None = Field(None, description="开始时间")
finishedAt: datetime | None = Field(None, description="结束时间")
class AuditResultVO(BaseModel):
"""评查结果响应。"""
runId: int = Field(..., description="运行ID")
totalScore: float | None = Field(None, description="总分")
passedCount: int = Field(0, description="通过数")
failedCount: int = Field(0, description="失败数")
skippedCount: int = Field(0, description="跳过数")
phase: str | None = Field(None, description="draft/executed")
rescueApplied: bool = Field(False, description="是否执行 rescue")
rules: list[dict] = Field(default_factory=list, description="规则结果列表")
@@ -0,0 +1,13 @@
"""认证 VO(控制器层 + 服务层使用)。"""
from pydantic import BaseModel, Field
class LoginTokenVO(BaseModel):
"""登录响应。"""
access_token: str = Field(..., description="JWT Token")
token_type: str = Field("Bearer", description="Token 类型")
expires_in: int = Field(..., description="Token 过期时间(秒)")
issued_time: str = Field(..., description="签发时间 YYYY-MM-DD HH:MM:SS")
user_info: dict = Field(..., description="用户信息")
@@ -0,0 +1,26 @@
"""规则 VO。"""
from pydantic import BaseModel, Field
class RuleSetVO(BaseModel):
"""规则集响应。"""
id: int = Field(..., description="规则集ID")
ruleType: str = Field(..., description="业务规则类型编码")
ruleName: str = Field(..., description="规则集名称")
domainType: str | None = Field(None, description="域类型")
currentVersionId: int | None = Field(None, description="当前激活版本ID")
status: str = Field(..., description="draft/active/inactive/archived")
class RuleVersionVO(BaseModel):
"""规则版本响应。"""
id: int = Field(..., description="版本ID")
ruleSetId: int = Field(..., description="所属规则集ID")
versionNo: str = Field(..., description="版本号")
status: str = Field(..., description="draft/validated/published/rolled_back")
ossUrl: str = Field(..., description="YAML 文件 OSS 地址")
changeNote: str | None = Field(None, description="变更说明")
publishedAt: str | None = Field(None, description="发布时间")