Source code for pydotorg.domains.codesamples.schemas

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