diff --git a/schemas/book.py b/schemas/book.py new file mode 100644 index 0000000..ba06f2c --- /dev/null +++ b/schemas/book.py @@ -0,0 +1,19 @@ +from pydantic import BaseModel, Field +from typing import Optional + +# Base schema +class BookBase(BaseModel): + title: str = Field(..., description="Book title") + author: str = Field(..., description="Book author") + description: Optional[str] = Field(None, description="Book description") + pages: Optional[int] = Field(None, ge=1, description="Number of pages") + published_year: Optional[int] = Field(None, ge=1900, le=2023, description="Year of publication") + +# Create schema +class BookCreate(BookBase): + pass + +# Response schema +class Book(BookBase): + class Config: + orm_mode = True \ No newline at end of file