"""Модель InstanceSetting — key-value настройки инстанса (JSONB). Ключи зеркалят секции конфигурации (`transcriber`, `summarizer`, `chat`, `ai_level`, `summary_recipients`, `display_timezone`) — новая настройка не требует миграции, только запись новой строки (см. `services/instance_settings.py`). """ from datetime import datetime from typing import Any from sqlalchemy import DateTime, String, func from sqlalchemy.dialects.postgresql import JSONB from sqlalchemy.orm import Mapped, mapped_column from models.base import Base class InstanceSetting(Base): """Одна настройка инстанса: `key` — имя секции, `value` — JSONB-значение.""" __tablename__ = "instance_settings" key: Mapped[str] = mapped_column(String, primary_key=True) value: Mapped[dict[str, Any]] = mapped_column(JSONB, nullable=False) updated_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), nullable=False, server_default=func.now() )