2026-02-09 15:49:50 +05:30
|
|
|
"""Schemas for board-group memory create/read API payloads."""
|
|
|
|
|
|
2026-02-07 20:29:50 +05:30
|
|
|
from __future__ import annotations
|
|
|
|
|
|
2026-02-09 17:24:21 +05:30
|
|
|
from datetime import datetime
|
|
|
|
|
from uuid import UUID
|
2026-02-07 20:29:50 +05:30
|
|
|
|
|
|
|
|
from sqlmodel import SQLModel
|
|
|
|
|
|
2026-02-09 17:24:21 +05:30
|
|
|
from app.schemas.common import NonEmptyStr
|
|
|
|
|
|
|
|
|
|
RUNTIME_ANNOTATION_TYPES = (datetime, UUID, NonEmptyStr)
|
2026-02-07 20:29:50 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
class BoardGroupMemoryCreate(SQLModel):
|
2026-02-09 15:49:50 +05:30
|
|
|
"""Payload for creating a board-group memory entry."""
|
|
|
|
|
|
2026-02-07 20:29:50 +05:30
|
|
|
# For writes, reject blank/whitespace-only content.
|
|
|
|
|
content: NonEmptyStr
|
|
|
|
|
tags: list[str] | None = None
|
|
|
|
|
source: str | None = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BoardGroupMemoryRead(SQLModel):
|
2026-02-09 15:49:50 +05:30
|
|
|
"""Serialized board-group memory entry returned from read endpoints."""
|
|
|
|
|
|
2026-02-07 20:29:50 +05:30
|
|
|
id: UUID
|
|
|
|
|
board_group_id: UUID
|
2026-02-09 15:49:50 +05:30
|
|
|
# For reads, allow legacy rows that may have empty content
|
|
|
|
|
# (avoid response validation 500s).
|
2026-02-07 20:29:50 +05:30
|
|
|
content: str
|
|
|
|
|
tags: list[str] | None = None
|
|
|
|
|
source: str | None = None
|
|
|
|
|
is_chat: bool = False
|
|
|
|
|
created_at: datetime
|