"""Code Samples domain Pydantic schemas."""
from __future__ import annotations
import datetime
from uuid import UUID
from pydantic import BaseModel, ConfigDict
[docs]
class CodeSampleBase(BaseModel):
"""Base CodeSample schema with common fields."""
code: str
description: str
is_published: bool = False
[docs]
class CodeSampleCreate(CodeSampleBase):
"""Schema for creating a new CodeSample."""
creator_id: UUID
[docs]
class CodeSampleUpdate(BaseModel):
"""Schema for updating a CodeSample."""
code: str | None = None
description: str | None = None
is_published: bool | None = None
[docs]
class CodeSampleRead(CodeSampleBase):
"""Schema for reading CodeSample data."""
id: UUID
slug: str
creator_id: UUID
created_at: datetime.datetime
updated_at: datetime.datetime
model_config = ConfigDict(from_attributes=True)
[docs]
class CodeSampleList(BaseModel):
"""Schema for CodeSample list items."""
id: UUID
slug: str
description: str
is_published: bool
created_at: datetime.datetime
model_config = ConfigDict(from_attributes=True)