Initial commit: yu-zhi-ran platform with automation integration
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
from sqlalchemy import Column, String, Integer, Float, Date, DateTime, Text, Boolean, JSON
|
||||
from sqlalchemy.sql import func
|
||||
from .database import Base
|
||||
from datetime import datetime
|
||||
|
||||
class Topic(Base):
|
||||
__tablename__ = "topics"
|
||||
|
||||
id = Column(String, primary_key=True, index=True)
|
||||
title = Column(String, nullable=False)
|
||||
field = Column(String, nullable=False)
|
||||
format = Column(String)
|
||||
core_concept = Column(Text)
|
||||
audience_pain = Column(Text)
|
||||
unique_angle = Column(Text)
|
||||
priority = Column(String) # 高/中
|
||||
priority_score = Column(Integer, default=0)
|
||||
total_score = Column(Float)
|
||||
status = Column(String, default="pending") # pending/draft/ready/published
|
||||
cases = Column(JSON, default=list)
|
||||
source_file = Column(String)
|
||||
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
||||
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
|
||||
ready_at = Column(Date)
|
||||
published_at = Column(Date)
|
||||
compliance_score = Column(Integer)
|
||||
platform_urls = Column(JSON, default=dict) # {"zhihu": "...", "wechat": "...", "xiaohongshu": "..."}
|
||||
|
||||
class Article(Base):
|
||||
__tablename__ = "articles"
|
||||
|
||||
id = Column(String, primary_key=True) # e.g., A01_zhihu
|
||||
topic_id = Column(String, nullable=False)
|
||||
platform = Column(String, nullable=False)
|
||||
file_path = Column(String, nullable=False)
|
||||
status = Column(String, default="draft") # draft/optimized/published
|
||||
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
||||
compliance_score = Column(Integer)
|
||||
html_content = Column(Text) # 可缓存HTML内容以便预览
|
||||
Reference in New Issue
Block a user