Initial commit: yu-zhi-ran platform with automation integration
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
from pydantic import BaseModel
|
||||
from datetime import datetime, date
|
||||
from typing import Optional, List, Dict, Any
|
||||
|
||||
class TopicBase(BaseModel):
|
||||
id: str
|
||||
title: str
|
||||
field: str
|
||||
priority_score: int = 0
|
||||
status: str = "pending"
|
||||
compliance_score: Optional[int] = None
|
||||
ready_at: Optional[date] = None
|
||||
published_at: Optional[date] = None
|
||||
platform_urls: Optional[Dict[str, str]] = None
|
||||
|
||||
class TopicResponse(TopicBase):
|
||||
created_at: Optional[datetime] = None
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class ArticleBase(BaseModel):
|
||||
id: str
|
||||
topic_id: str
|
||||
platform: str
|
||||
file_path: str
|
||||
status: str = "draft"
|
||||
compliance_score: Optional[int] = None
|
||||
created_at: Optional[datetime] = None
|
||||
|
||||
class ArticleResponse(ArticleBase):
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class SystemStatus(BaseModel):
|
||||
total_topics: int
|
||||
topics_by_status: Dict[str, int]
|
||||
ready_topics: List[TopicResponse]
|
||||
today_articles: int
|
||||
compliance_rate: float
|
||||
last_optimization: Optional[datetime] = None
|
||||
execution_time: Optional[float] = None # 任务执行耗时(秒)
|
||||
|
||||
class OptimizationRequest(BaseModel):
|
||||
topic_ids: Optional[List[str]] = None # None表示全部
|
||||
|
||||
class PublishRequest(BaseModel):
|
||||
topic_id: str
|
||||
platform_urls: Dict[str, str] # {"zhihu": "...", "wechat": "...", "xiaohongshu": "..."}
|
||||
|
||||
class BatchPublishRequest(BaseModel):
|
||||
date: str # YYYY-MM-DD
|
||||
Reference in New Issue
Block a user