from sqlalchemy import Boolean, CheckConstraint, func from sqlalchemy.orm import Mapped, mapped_column from datetime import datetime from app.database import Base class SystemConfig(Base): """ Singleton system configuration table (always id=1). Stores global toggles for registration, MFA enforcement, etc. """ __tablename__ = "system_config" __table_args__ = ( CheckConstraint("id = 1", name="ck_system_config_singleton"), ) id: Mapped[int] = mapped_column(primary_key=True) allow_registration: Mapped[bool] = mapped_column( Boolean, default=False, server_default="false" ) enforce_mfa_new_users: Mapped[bool] = mapped_column( Boolean, default=False, server_default="false" ) allow_passwordless: Mapped[bool] = mapped_column( Boolean, default=False, server_default="false" ) created_at: Mapped[datetime] = mapped_column(default=func.now(), server_default=func.now()) updated_at: Mapped[datetime] = mapped_column( default=func.now(), onupdate=func.now(), server_default=func.now() )