Initial Commit
This commit is contained in:
40
backend/schemas.py
Normal file
40
backend/schemas.py
Normal file
@@ -0,0 +1,40 @@
|
||||
import datetime
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class NewsItemResponse(BaseModel):
|
||||
id: int
|
||||
headline: str
|
||||
summary: str
|
||||
source_url: str | None = None
|
||||
image_url: str | None = None
|
||||
image_credit: str | None = None
|
||||
published_at: datetime.datetime
|
||||
created_at: datetime.datetime
|
||||
language: str
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class PaginatedNewsResponse(BaseModel):
|
||||
items: list[NewsItemResponse]
|
||||
next_cursor: int | None = None
|
||||
has_more: bool = False
|
||||
|
||||
|
||||
class NewsTranslationResponse(BaseModel):
|
||||
id: int
|
||||
news_item_id: int
|
||||
language: str
|
||||
headline: str
|
||||
summary: str
|
||||
created_at: datetime.datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class HealthResponse(BaseModel):
|
||||
status: str
|
||||
version: str
|
||||
news_count: int
|
||||
Reference in New Issue
Block a user