from typing import TYPE_CHECKING from sqlalchemy import ForeignKey, Integer, String from sqlalchemy.orm import Mapped, mapped_column, relationship from app.utils.db import Base if TYPE_CHECKING: from .user import User class UserIntegration(Base): __tablename__ = "user_integrations" id: Mapped[int] = mapped_column(Integer, primary_key=True) user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), nullable=False) facebook: Mapped[str | None] = mapped_column(String(255), nullable=True) pinterest: Mapped[str | None] = mapped_column(String(255), nullable=True) discord: Mapped[str | None] = mapped_column(String(255), nullable=True) artstation: Mapped[str | None] = mapped_column(String(255), nullable=True) x: Mapped[str | None] = mapped_column(String(255), nullable=True) # Twitter/X behance: Mapped[str | None] = mapped_column(String(255), nullable=True) instagram: Mapped[str | None] = mapped_column(String(255), nullable=True) user: Mapped["User"] = relationship( "User", back_populates="integrations", uselist=False )