feat: 完善AI改写草稿箱功能 - 修复重头游玩、评分、数据刷新等问题
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
"""
|
||||
故事相关ORM模型
|
||||
"""
|
||||
from sqlalchemy import Column, Integer, String, Text, Boolean, TIMESTAMP, ForeignKey
|
||||
from sqlalchemy import Column, Integer, String, Text, Boolean, TIMESTAMP, ForeignKey, Enum, JSON
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy.sql import func
|
||||
from app.database import Base
|
||||
import enum
|
||||
|
||||
|
||||
class Story(Base):
|
||||
@@ -64,3 +65,43 @@ class StoryChoice(Base):
|
||||
created_at = Column(TIMESTAMP, server_default=func.now())
|
||||
|
||||
node = relationship("StoryNode", back_populates="choices")
|
||||
|
||||
|
||||
class DraftStatus(enum.Enum):
|
||||
"""草稿状态枚举"""
|
||||
pending = "pending"
|
||||
processing = "processing"
|
||||
completed = "completed"
|
||||
failed = "failed"
|
||||
|
||||
|
||||
class StoryDraft(Base):
|
||||
"""AI改写草稿表"""
|
||||
__tablename__ = "story_drafts"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False)
|
||||
story_id = Column(Integer, ForeignKey("stories.id", ondelete="CASCADE"), nullable=False)
|
||||
title = Column(String(100), default="")
|
||||
|
||||
# 用户输入
|
||||
path_history = Column(JSON, default=None) # 用户之前的选择路径
|
||||
current_node_key = Column(String(50), default="")
|
||||
current_content = Column(Text, default="")
|
||||
user_prompt = Column(String(500), nullable=False)
|
||||
|
||||
# AI生成结果
|
||||
ai_nodes = Column(JSON, default=None) # AI生成的新节点
|
||||
entry_node_key = Column(String(50), default="")
|
||||
tokens_used = Column(Integer, default=0)
|
||||
|
||||
# 状态
|
||||
status = Column(Enum(DraftStatus), default=DraftStatus.pending)
|
||||
error_message = Column(String(500), default="")
|
||||
is_read = Column(Boolean, default=False) # 用户是否已查看
|
||||
|
||||
created_at = Column(TIMESTAMP, server_default=func.now())
|
||||
completed_at = Column(TIMESTAMP, default=None)
|
||||
|
||||
# 关联
|
||||
story = relationship("Story")
|
||||
|
||||
Reference in New Issue
Block a user