init
This commit is contained in:
0
backend/app/models/__init__.py
Normal file
0
backend/app/models/__init__.py
Normal file
11
backend/app/models/config.py
Normal file
11
backend/app/models/config.py
Normal 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)
|
||||
17
backend/app/models/person.py
Normal file
17
backend/app/models/person.py
Normal 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())
|
||||
26
backend/app/models/story.py
Normal file
26
backend/app/models/story.py
Normal 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())
|
||||
17
backend/app/models/transcript.py
Normal file
17
backend/app/models/transcript.py
Normal 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())
|
||||
Reference in New Issue
Block a user