feat: add link_type field to quick links
Build and Push / build (release) Successful in 1m10s

Adds link_type column to quick_links table for iframe vs new_tab behavior.
Includes Alembic migration and schema updates.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Jeroen Schweitzer
2026-01-03 14:38:10 +01:00
co-authored by Claude Opus 4.5
parent 381d43b60b
commit 49be935b5d
5 changed files with 37 additions and 1 deletions
+1
View File
@@ -31,6 +31,7 @@ class QuickLink(Base):
# Ordering and display
position = Column(Integer, default=0)
is_visible = Column(Boolean, default=True)
link_type = Column(String(20), default="iframe") # "iframe", "new_tab", etc.
# Styling
color = Column(String(20), nullable=True) # Hex color for the link card
+3
View File
@@ -26,6 +26,7 @@ class QuickLinkCreate(QuickLinkBase):
"""Schema for creating a quick link"""
position: Optional[int] = Field(0, ge=0, description="Display position")
is_visible: Optional[bool] = Field(True, description="Whether link is visible")
link_type: Optional[str] = Field("iframe", max_length=20, description="Link type: iframe, new_tab")
class QuickLinkUpdate(BaseSchema):
@@ -37,6 +38,7 @@ class QuickLinkUpdate(BaseSchema):
category: Optional[str] = Field(None, max_length=50)
position: Optional[int] = Field(None, ge=0)
is_visible: Optional[bool] = None
link_type: Optional[str] = Field(None, max_length=20)
color: Optional[str] = Field(None, max_length=20)
background_color: Optional[str] = Field(None, max_length=20)
@@ -47,6 +49,7 @@ class QuickLinkResponse(QuickLinkBase):
user_id: Optional[str] = None
position: int
is_visible: bool
link_type: str = "iframe"
created_at: datetime
updated_at: datetime