from sqlalchemy import ForeignKey, Integer, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column Base = DeclarativeBase() class Profile(Base): __tablename__ = "profiles" id: Mapped[int] = mapped_column(Integer, primary_key=True) user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), unique=True) avatar_file: Mapped[str | None] = mapped_column(String(255), nullable=True) banner_file: Mapped[str | None] = mapped_column(String(255), nullable=True) description: Mapped[str | None] = mapped_column(String(500), nullable=True) publications_count: Mapped[int] = mapped_column(Integer, default=0, nullable=False) collections_count: Mapped[int] = mapped_column(Integer, default=0, nullable=False) subscriptions_count: Mapped[int] = mapped_column(Integer, default=0, nullable=False) followers_count: Mapped[int] = mapped_column(Integer, default=0, nullable=False) following_count: Mapped[int] = mapped_column(Integer, default=0, nullable=False)