from __future__ import annotations from datetime import datetime from sqlalchemy import DateTime, Text, func from sqlalchemy.orm import Mapped, mapped_column from . import Base class Setting(Base): """A single persisted key/value setting. Values are JSON-encoded text; the typed defaults + metadata live in the code registry (thoughtsync.settings), so an empty table means "all defaults" (rule 26).""" __tablename__ = "settings" key: Mapped[str] = mapped_column(Text(), primary_key=True) value: Mapped[str] = mapped_column(Text(), nullable=False) updated_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), nullable=False, server_default=func.now(), onupdate=func.now() )