feat: 添加 SQLAlchemy 模型 + Alembic 数据库迁移
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class AnnouncementResponse(BaseModel):
|
||||
id: int
|
||||
title: str
|
||||
publish_date: datetime
|
||||
purchase_name: str
|
||||
content_url: str
|
||||
source_code: str
|
||||
source_name: str
|
||||
announcement_type: str
|
||||
crawl_mode: str
|
||||
is_new: bool
|
||||
is_sent: bool
|
||||
keyword_matched: bool
|
||||
created_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class AnnouncementListResponse(BaseModel):
|
||||
total: int
|
||||
page: int
|
||||
page_size: int
|
||||
items: list[AnnouncementResponse]
|
||||
|
||||
|
||||
class CrawlTriggerRequest(BaseModel):
|
||||
keywords: Optional[list[str]] = None
|
||||
sources: Optional[list[str]] = None
|
||||
manual: bool = False
|
||||
|
||||
|
||||
class CrawlStatusResponse(BaseModel):
|
||||
running: bool
|
||||
last_crawl_time: Optional[datetime] = None
|
||||
total_sources: int
|
||||
|
||||
|
||||
class SourceInfo(BaseModel):
|
||||
code: str
|
||||
name: str
|
||||
type: str
|
||||
|
||||
|
||||
class SourcesResponse(BaseModel):
|
||||
sources: list[SourceInfo]
|
||||
|
||||
|
||||
class JobResponse(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
next_run_time: Optional[str] = None
|
||||
Reference in New Issue
Block a user