refactor(core): 重构核心模块结构并更新导入路径 - 将配置相关的设置从 app.core.config 移除 - 将常量定义从 app.core.constants 移除 - 将数据库相关功能从 app.core.database 移除 - 将基础数据库模型从 app.core.db_base 移除 - 将敏感信息掩码功能从 app.core.masking 移除 - 将中间件定义从 app.core.middleware 移除 - 将操作保护功能从 app.core.operation_guard 移除 - 将分页工具从 app.core.pagination 移除 - 将请求上下文管理从 app.core.request_context 移除 - 将调度器功能从 app.core.scheduler 移除 - 将安全认证逻辑从 app.core.security 移除 - 将任务队列相关功能从 app.core.task_queue 移除 - 将时间工具从 app.core.time 移除 - 更新 alembic 配置中的 Base 模型导入路径 - 更新各模块中对重构后组件的引用路径 ```
45 lines
2.1 KiB
Python
45 lines
2.1 KiB
Python
from datetime import datetime
|
|
|
|
from sqlalchemy import JSON, DateTime, Integer, String
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
|
|
|
from app.core.constants import ActorValue
|
|
from app.core.database import Base
|
|
from app.core.utils.time import utc_now
|
|
from app.modules.workflows.constants import WorkflowStatus
|
|
|
|
|
|
class WorkflowInstance(Base):
|
|
__tablename__ = "workflow_instances"
|
|
|
|
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
|
|
code: Mapped[str] = mapped_column(String(64), unique=True, index=True)
|
|
workflow_type: Mapped[str] = mapped_column(String(128), index=True)
|
|
aggregate_type: Mapped[str] = mapped_column(String(128), index=True)
|
|
aggregate_id: Mapped[str | None] = mapped_column(String(128), nullable=True, index=True)
|
|
status: Mapped[str] = mapped_column(String(32), default=WorkflowStatus.RUNNING, index=True)
|
|
actor: Mapped[str] = mapped_column(String(128), default=ActorValue.SYSTEM, index=True)
|
|
current_step: Mapped[str | None] = mapped_column(String(128), nullable=True)
|
|
payload: Mapped[dict | None] = mapped_column(JSON, nullable=True)
|
|
created_at: Mapped[datetime] = mapped_column(DateTime, default=utc_now, index=True)
|
|
updated_at: Mapped[datetime] = mapped_column(
|
|
DateTime,
|
|
default=utc_now,
|
|
onupdate=utc_now,
|
|
)
|
|
completed_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True, index=True)
|
|
|
|
|
|
class WorkflowAction(Base):
|
|
__tablename__ = "workflow_actions"
|
|
|
|
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
|
|
code: Mapped[str] = mapped_column(String(64), unique=True, index=True)
|
|
workflow_code: Mapped[str] = mapped_column(String(64), index=True)
|
|
action: Mapped[str] = mapped_column(String(128), index=True)
|
|
actor: Mapped[str] = mapped_column(String(128), default=ActorValue.SYSTEM, index=True)
|
|
from_status: Mapped[str | None] = mapped_column(String(32), nullable=True)
|
|
to_status: Mapped[str | None] = mapped_column(String(32), nullable=True)
|
|
payload: Mapped[dict | None] = mapped_column(JSON, nullable=True)
|
|
created_at: Mapped[datetime] = mapped_column(DateTime, default=utc_now, index=True)
|