This commit is contained in:
2026-04-24 16:02:16 +08:00
commit 1d6f0cc370
66 changed files with 9990 additions and 0 deletions

View File

View File

@@ -0,0 +1,11 @@
from sqlalchemy import Column, String, Text
from sqlalchemy.sql import func
from app.database import Base
class Config(Base):
__tablename__ = "config"
key = Column(String, primary_key=True)
value = Column(Text, nullable=False)

View File

@@ -0,0 +1,17 @@
from sqlalchemy import Column, String, Text, DateTime
from sqlalchemy.sql import func
from app.database import Base
class Person(Base):
__tablename__ = "persons"
id = Column(String, primary_key=True)
name = Column(String, nullable=False)
nickname = Column(String, default="") # 文字稿中的昵称
filename = Column(String, nullable=False)
file_path = Column(String, nullable=False)
photo_path = Column(String, default="")
info = Column(Text, default="") # JSON
uploaded_at = Column(DateTime, server_default=func.now())

View File

@@ -0,0 +1,26 @@
import uuid
from sqlalchemy import Column, String, Integer, Float, Text, DateTime, ForeignKey
from sqlalchemy.sql import func
from app.database import Base
class Story(Base):
__tablename__ = "stories"
id = Column(String, primary_key=True, default=lambda: uuid.uuid4().hex)
title = Column(String, nullable=False)
summary = Column(Text, default="")
tags = Column(Text, default="") # JSON: ["标签1", "标签2", ...]
content = Column(Text, default="")
raw_material = Column(Text, default="") # JSON: 第四步重组后的素材
speaker_nickname = Column(String, default="")
source_transcript_id = Column(String, ForeignKey("transcripts.id"), nullable=False)
source_lines = Column(Text, default="") # JSON: {start, end}
duration_minutes = Column(Float, default=0)
confidence = Column(Float, default=0)
confidence_level = Column(String, default="medium") # high/medium/low
person_id = Column(String, ForeignKey("persons.id"), nullable=True)
match_status = Column(String, default="pending") # pending/matched/deleted
created_at = Column(DateTime, server_default=func.now())

View File

@@ -0,0 +1,17 @@
from sqlalchemy import Column, String, Integer, Float, Text, DateTime
from sqlalchemy.sql import func
from app.database import Base
class Transcript(Base):
__tablename__ = "transcripts"
id = Column(String, primary_key=True)
filename = Column(String, nullable=False)
file_path = Column(String, nullable=False)
line_count = Column(Integer, default=0)
file_size = Column(Integer, default=0)
status = Column(String, default="pending") # pending/processing/done/error
error_message = Column(Text, default="")
uploaded_at = Column(DateTime, server_default=func.now())