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 ```
63 lines
1.4 KiB
Python
63 lines
1.4 KiB
Python
from enum import StrEnum
|
|
|
|
|
|
class EventStatus(StrEnum):
|
|
PENDING = "pending"
|
|
PROCESSED = "processed"
|
|
FAILED = "failed"
|
|
|
|
|
|
class EventType(StrEnum):
|
|
APPROVAL_DECIDED = "approval.decided"
|
|
RISK_ACTION_RECORDED = "risk.action_recorded"
|
|
REPORT_PUSH_SUCCEEDED = "report.push_succeeded"
|
|
REPORT_PUSH_FAILED = "report.push_failed"
|
|
LEGACY_SYNC_COMPLETED = "legacy.sync_completed"
|
|
WRITEBACK_REQUESTED = "writeback.requested"
|
|
WRITEBACK_SUBMITTED = "writeback.submitted"
|
|
|
|
|
|
class EventSource(StrEnum):
|
|
APPROVAL = "approval"
|
|
RISK = "risk"
|
|
REPORTS = "reports"
|
|
LEGACY_MYSQL = "legacy_mysql"
|
|
WRITEBACK = "writeback"
|
|
API = "api"
|
|
|
|
|
|
class EventAggregateType(StrEnum):
|
|
APPROVAL = "approval"
|
|
RISK_EVENT = "risk-event"
|
|
REPORT_PUSH_RUN = "report-push-run"
|
|
LEGACY_SYNC_RUN = "legacy-sync-run"
|
|
WRITEBACK_RUN = "writeback-run"
|
|
|
|
|
|
class EventResponseKey(StrEnum):
|
|
ITEMS = "items"
|
|
EVENT = "event"
|
|
TOTAL = "total"
|
|
|
|
|
|
class EventPayloadKey(StrEnum):
|
|
ACTION = "action"
|
|
STATUS = "status"
|
|
TICKET_ID = "ticket_id"
|
|
DOMAIN = "domain"
|
|
RECORD_ID = "record_id"
|
|
APPROVED = "approved"
|
|
COMMENT = "comment"
|
|
CODE = "code"
|
|
CREATED = "created"
|
|
UPDATED = "updated"
|
|
SKIPPED = "skipped"
|
|
ERROR_MESSAGE = "error_message"
|
|
|
|
|
|
class EventErrorDetail(StrEnum):
|
|
EVENT_NOT_FOUND = "Domain event not found"
|
|
|
|
|
|
EVENT_CODE_PREFIX = "EVT"
|