DB - telegram_settings

abstract

Singleton Telegram bot configuration — encrypted bot token, chat ID, and enabled flag — for sending trade alerts and system notifications.

Table Info

PropertyValue
Table Nametelegram_settings
SQLAlchemy Modelbackend/db/models.py :: TelegramSettings
Pydantic Schemabackend/api/routes/settings.py :: TelegramSettingsModel
Migration Filealembic/versions/
TimescaleDB HypertableNo
Partition Column

Columns

ColumnSQLAlchemy TypeNullableDefaultDescription
idIntegerNo1Primary key (singleton — always id=1)
bot_token_encryptedTextYesnullFernet-encrypted Telegram bot token
bot_token_hintString(50)YesnullMasked hint for UI display (e.g., 123456:...abc)
chat_idString(100)No""Telegram chat ID or channel ID
is_enabledBooleanNoTrueMaster switch for Telegram notifications
updated_atDateTime(timezone=True)Nodatetime.now(UTC)Last update timestamp

SQLAlchemy Model (reference snapshot)

class TelegramSettings(Base):
    __tablename__ = "telegram_settings"
 
    id: Mapped[int] = mapped_column(Integer, primary_key=True)
    bot_token_encrypted: Mapped[str | None] = mapped_column(Text, nullable=True)
    bot_token_hint: Mapped[str | None] = mapped_column(String(50), nullable=True)
    chat_id: Mapped[str] = mapped_column(String(100), default="")
    is_enabled: Mapped[bool] = mapped_column(Boolean, default=True)
    updated_at: Mapped[datetime] = mapped_column(
        DateTime(timezone=True),
        default=lambda: datetime.now(UTC),
        onupdate=lambda: datetime.now(UTC),
    )
RoleLink
API EndpointAPI-POST-v1-Settings
Frontend PagePage - Settings
Related TableDB - global_settings