This commit is contained in:
2026-07-21 19:22:50 +08:00
parent b374a541ea
commit 7683ebb186
65 changed files with 5067 additions and 1741 deletions
@@ -37,6 +37,9 @@ class GenerationRecord(Base, TimestampMixin, SoftDeleteMixin):
video_cover_url: Mapped[str | None] = mapped_column(String(512), nullable=True)
image_url: Mapped[str | None] = mapped_column(String(512), nullable=True)
media_references: Mapped[str | None] = mapped_column(Text, nullable=True)
include_media_references: Mapped[bool] = mapped_column(
Boolean, nullable=False, default=False, server_default="false"
)
video_url_expires_at: Mapped[datetime | None] = mapped_column(
DateTime(timezone=True), nullable=True
)
@@ -5,6 +5,7 @@ from datetime import datetime
from sqlalchemy import DateTime, ForeignKey, Index, String, Text, text
from sqlalchemy.orm import Mapped, mapped_column
from app.enums.common import ModuleGenerationFlowVersionEnum
from app.models.base import Base, SoftDeleteMixin, TimestampMixin
@@ -36,6 +37,12 @@ class ModuleGenerationProject(Base, TimestampMixin, SoftDeleteMixin):
String(32), ForeignKey("users.id", ondelete="CASCADE"), index=True, nullable=False
)
module: Mapped[str] = mapped_column(String(64), index=True, nullable=False)
flow_version: Mapped[str] = mapped_column(
String(16),
nullable=False,
default=ModuleGenerationFlowVersionEnum.V1.value,
server_default=ModuleGenerationFlowVersionEnum.V1.value,
)
title: Mapped[str | None] = mapped_column(String(160), nullable=True)
status: Mapped[str] = mapped_column(String(32), default="pending", index=True)
current_step_code: Mapped[str | None] = mapped_column(String(64), nullable=True, index=True)
@@ -15,12 +15,12 @@ _STEP_JSON_TYPE = JSON().with_variant(JSONB, "postgresql")
class ModuleGenerationStep(Base, TimestampMixin, SoftDeleteMixin):
"""通用模块生成步骤表。
爆款开头复刻固定步骤:
1 material_input
2 image_prompt_optimize
3 image_generate
4 video_prompt_optimize
5 video_generate
V1 固定五步:material_input / image_prompt_optimize / image_generate /
video_prompt_optimize / video_generate。
V2 固定三步:material_input / video_prompt_optimize / video_generate
version 只表示同一步骤的重建版本,不表示项目流程版本;项目版本由
ModuleGenerationProject.flow_version 保存。
input_json / output_json 使用 JSON/JSONB 存储。
建议结构: