feat: FlowPilot AI — Phases 4 & 5 (Gallery, Export, Responsive, Enterprise, Analytics) #116

Merged
chihlasm merged 66 commits from feat/flowpilot-ai-session into main 2026-03-21 05:15:51 +00:00
3 changed files with 44 additions and 0 deletions
Showing only changes of commit 836a014a0f - Show all commits

View File

@@ -0,0 +1,40 @@
"""add gallery featuring columns to trees and script_templates
Revision ID: 9094262a4be3
Revises: b09c3789b7e6
Create Date: 2026-03-19 19:07:25.964399
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '9094262a4be3'
down_revision: Union[str, None] = 'b09c3789b7e6'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# Add gallery featuring columns to trees
op.add_column('trees', sa.Column('is_gallery_featured', sa.Boolean(), nullable=False, server_default=sa.text('false')))
op.add_column('trees', sa.Column('gallery_sort_order', sa.Integer(), nullable=False, server_default=sa.text('0')))
op.create_index(op.f('ix_trees_is_gallery_featured'), 'trees', ['is_gallery_featured'], unique=False)
# Add gallery featuring columns to script_templates
op.add_column('script_templates', sa.Column('is_gallery_featured', sa.Boolean(), nullable=False, server_default=sa.text('false')))
op.add_column('script_templates', sa.Column('gallery_sort_order', sa.Integer(), nullable=False, server_default=sa.text('0')))
op.create_index(op.f('ix_script_templates_is_gallery_featured'), 'script_templates', ['is_gallery_featured'], unique=False)
def downgrade() -> None:
op.drop_index(op.f('ix_script_templates_is_gallery_featured'), table_name='script_templates')
op.drop_column('script_templates', 'gallery_sort_order')
op.drop_column('script_templates', 'is_gallery_featured')
op.drop_index(op.f('ix_trees_is_gallery_featured'), table_name='trees')
op.drop_column('trees', 'gallery_sort_order')
op.drop_column('trees', 'is_gallery_featured')

View File

@@ -65,6 +65,8 @@ class ScriptTemplate(Base):
version: Mapped[int] = mapped_column(Integer, nullable=False, default=1)
is_verified: Mapped[bool] = mapped_column(Boolean, nullable=False, default=False)
is_active: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
is_gallery_featured: Mapped[bool] = mapped_column(Boolean, nullable=False, default=False, index=True)
gallery_sort_order: Mapped[int] = mapped_column(Integer, nullable=False, default=0)
usage_count: Mapped[int] = mapped_column(Integer, nullable=False, default=0)
created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)

View File

@@ -85,6 +85,8 @@ class Tree(Base):
is_active: Mapped[bool] = mapped_column(Boolean, default=True)
is_public: Mapped[bool] = mapped_column(Boolean, default=False, index=True)
is_default: Mapped[bool] = mapped_column(Boolean, default=False, index=True)
is_gallery_featured: Mapped[bool] = mapped_column(Boolean, default=False, index=True)
gallery_sort_order: Mapped[int] = mapped_column(Integer, default=0)
visibility: Mapped[str] = mapped_column(
String(20),
nullable=False,