33 lines
1.3 KiB
Python

from pydantic import BaseModel, Field
from typing import Optional
from datetime import datetime
import uuid
class BookBase(BaseModel):
title: str = Field(..., description="Book title")
author: str = Field(..., description="Book author")
description: Optional[str] = Field(None, description="Book description")
published_year: Optional[int] = Field(None, description="Book published year")
publisher: Optional[str] = Field(None, description="Book publisher")
genre: Optional[str] = Field(None, description="Book genre")
pages: Optional[int] = Field(None, description="Number of pages")
class BookCreate(BookBase):
pass
class BookUpdate(BookBase):
title: Optional[str] = Field(None, description="Book title")
author: Optional[str] = Field(None, description="Book author")
description: Optional[str] = Field(None, description="Book description")
published_year: Optional[int] = Field(None, description="Book published year")
publisher: Optional[str] = Field(None, description="Book publisher")
genre: Optional[str] = Field(None, description="Book genre")
pages: Optional[int] = Field(None, description="Number of pages")
class BookSchema(BookBase):
id: uuid.UUID
created_at: datetime
updated_at: datetime
class Config:
orm_mode = True