external_link.py 964 B

12345678910111213141516171819202122
  1. from datetime import datetime
  2. from sqlalchemy import Boolean, DateTime, Integer, String, func
  3. from sqlalchemy.orm import Mapped, mapped_column
  4. from backend.app.core.database import Base
  5. class ExternalLink(Base):
  6. """External links for sidebar navigation."""
  7. __tablename__ = "external_links"
  8. id: Mapped[int] = mapped_column(primary_key=True)
  9. name: Mapped[str] = mapped_column(String(50))
  10. url: Mapped[str] = mapped_column(String(500))
  11. icon: Mapped[str] = mapped_column(String(50), default="link")
  12. custom_icon: Mapped[str | None] = mapped_column(String(255), nullable=True) # Filename of uploaded icon
  13. open_in_new_tab: Mapped[bool] = mapped_column(Boolean, default=False)
  14. sort_order: Mapped[int] = mapped_column(Integer, default=0)
  15. created_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now())
  16. updated_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now(), onupdate=func.now())