Source code for pydotorg.domains.minutes.schemas

"""Minutes domain Pydantic schemas."""

from __future__ import annotations

import datetime
from uuid import UUID

from pydantic import BaseModel, ConfigDict

from pydotorg.domains.pages.models import ContentType


[docs] class MinutesBase(BaseModel): """Base Minutes schema with common fields.""" date: datetime.date content: str content_type: ContentType = ContentType.MARKDOWN is_published: bool = False
[docs] class MinutesCreate(MinutesBase): """Schema for creating new Minutes.""" creator_id: UUID
[docs] class MinutesUpdate(BaseModel): """Schema for updating Minutes.""" date: datetime.date | None = None content: str | None = None content_type: ContentType | None = None is_published: bool | None = None
[docs] class MinutesRead(MinutesBase): """Schema for reading Minutes data.""" id: UUID slug: str creator_id: UUID created_at: datetime.datetime updated_at: datetime.datetime model_config = ConfigDict(from_attributes=True)
[docs] class MinutesList(BaseModel): """Schema for Minutes list items.""" id: UUID slug: str date: datetime.date is_published: bool created_at: datetime.datetime model_config = ConfigDict(from_attributes=True)