import uuid from typing import TYPE_CHECKING from sqlalchemy import ForeignKey from sqlalchemy import JSON, Uuid as UUID from sqlalchemy.orm import Mapped, mapped_column, relationship from src.models.base import Base, TimestampMixin, UUIDPrimaryKeyMixin if TYPE_CHECKING: from src.models.user import User class UserConfig(UUIDPrimaryKeyMixin, TimestampMixin, Base): __tablename__ = "user_configs" user_id: Mapped[uuid.UUID] = mapped_column(UUID(), ForeignKey("users.id"), nullable=False, unique=True) config: Mapped[dict[str, object]] = mapped_column(JSON, default=dict, nullable=False) user: Mapped["User"] = relationship(back_populates="user_config")