feat:增加博客处理模块

This commit is contained in:
2025-09-22 19:43:16 +08:00
parent c4674749ce
commit f07b23b825
35 changed files with 763 additions and 28 deletions

View File

@@ -1,6 +1,6 @@
from typing import Optional
from pydantic import BaseModel
from pydantic import BaseModel, Field
from datetime import datetime
@@ -13,14 +13,25 @@ class BlogQuery(BaseModel):
year: Optional[int] = None
class BlogResponse(BaseModel):
id: Optional[int] = None
title: Optional[str] = None
topValue: Optional[int] = None
isGreat: Optional[bool] = None
category: Optional[str] = None
summary: Optional[str] = None
class BlogBase(BaseModel):
title: str
topValue: int
isGreat: bool
category: str
content: Optional[str] = None
class BlogCreate(BlogBase):
pass
class BlogUpdate(BlogBase):
pass
class BlogResponse(BlogBase):
id: Optional[int] = None
summary: Optional[str] = None
wordCount: Optional[int] = None
readDuration: Optional[float] = None
visitCount: Optional[int] = None
@@ -49,6 +60,21 @@ class BlogStatsResponse(BaseModel):
wordCount: int
class BlogVisitResponse(BaseModel):
ip: str
os: str
browser: str
uri: str
title: Optional[str] = None
visitTime: datetime
class Config:
from_attributes = True
json_encoders = {
datetime: lambda dt: dt.strftime('%Y-%m-%d %H:%M:%S')
}
class BlogLatestResponse(BaseModel):
id: int
title: str