"""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)
