v1
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from typing import Optional, List
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
class PostBase(BaseModel):
|
||||
title: str
|
||||
slug: str
|
||||
excerpt: Optional[str] = None
|
||||
body: str = ""
|
||||
author: Optional[str] = None
|
||||
featured_image_url: Optional[str] = None
|
||||
tags: List[str] = []
|
||||
published: bool = False
|
||||
|
||||
|
||||
class PostCreate(PostBase):
|
||||
pass
|
||||
|
||||
|
||||
class PostUpdate(BaseModel):
|
||||
title: Optional[str] = None
|
||||
slug: Optional[str] = None
|
||||
excerpt: Optional[str] = None
|
||||
body: Optional[str] = None
|
||||
author: Optional[str] = None
|
||||
featured_image_url: Optional[str] = None
|
||||
tags: Optional[List[str]] = None
|
||||
published: Optional[bool] = None
|
||||
|
||||
|
||||
class PostResponse(PostBase):
|
||||
id: uuid.UUID
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
class PaginatedPostsResponse(BaseModel):
|
||||
items: List[PostResponse]
|
||||
total: int
|
||||
page: int
|
||||
per_page: int
|
||||
total_pages: int
|
||||
Reference in New Issue
Block a user