13 testiä, ForeignKey-relaatio, uniikki suomalainen testidata (Aleksis Kivi, Tove Jansson jne). Testattu Docker-kontissa.
38 lines
841 B
Python
38 lines
841 B
Python
"""Pydantic v2 -skeemat — Create sisääntulolle, Response vastaukselle."""
|
|
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
|
|
class AuthorCreate(BaseModel):
|
|
"""Uuden kirjoittajan luonti. Pakolliset: name, email."""
|
|
|
|
name: str
|
|
email: str
|
|
bio: str | None = None
|
|
|
|
|
|
class AuthorResponse(AuthorCreate):
|
|
"""Palautettava kirjoittaja — sisältää id:n."""
|
|
|
|
id: int
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
class PostCreate(BaseModel):
|
|
"""Uuden postauksen luonti. Pakolliset: title, content, author_id."""
|
|
|
|
title: str
|
|
content: str
|
|
author_id: int
|
|
published_at: datetime | None = None
|
|
status: str = "draft"
|
|
|
|
|
|
class PostResponse(PostCreate):
|
|
"""Palautettava postaus — sisältää id:n."""
|
|
|
|
id: int
|
|
model_config = ConfigDict(from_attributes=True)
|