external_link.py 939 B

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