feat: 添加数据库迁移脚本并更新Dockerfile配置 - 在Dockerfile中添加alembic配置文件和目录的复制指令 - 更新alembic/env.py注册新的模块模型:events、workflows、writebacks - 生成完整的初始数据库schema迁移脚本,包含以下表: - approval_requests, attendance_records, audit_logs, domain_events - expenses, feishu_event_receipts, fund_accounts, legacy_sync_runs - official_writeback_runs, performance_metrics, policies, procurements - projects, report_push_runs, risk_event_actions, risk_events - standards, suppliers, work_reports, work_tasks, workflow_actions - workflow_instances等21个数据表结构定义 - 在API路由器中添加新模块的路由:events、workflows、writebacks、observability ```
38 lines
953 B
Python
38 lines
953 B
Python
from datetime import datetime
|
|
from typing import Any
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
from app.core.constants import ActorValue
|
|
from app.modules.audit.constants import AuditRiskLevel, AuditSource, AuditStatus
|
|
|
|
|
|
class AuditLogCreate(BaseModel):
|
|
actor: str = ActorValue.SYSTEM
|
|
source: str = AuditSource.API
|
|
action: str
|
|
target_type: str | None = None
|
|
target_id: str | None = None
|
|
risk_level: str = AuditRiskLevel.LOW
|
|
request_payload: Any | None = None
|
|
response_payload: Any | None = None
|
|
status: str = AuditStatus.SUCCESS
|
|
request_id: str | None = None
|
|
|
|
|
|
class AuditLogRead(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: int
|
|
actor: str
|
|
source: str
|
|
action: str
|
|
target_type: str | None
|
|
target_id: str | None
|
|
risk_level: str
|
|
request_payload: str | None
|
|
response_payload: str | None
|
|
status: str
|
|
request_id: str | None
|
|
created_at: datetime
|