Files
MusicAnalyser/backend/alembic/versions/5ed73db9bab9_add_playlist_columns.py
bnair123 93e7c13f3d feat: implement AI-curated playlist service and dashboard integration
- Added hierarchical AGENTS.md knowledge base
- Implemented PlaylistService with 6h themed and 24h devotion mix logic
- Integrated AI theme generation for 6h playlists via Gemini/OpenAI
- Added /playlists/refresh and metadata endpoints to API
- Updated background worker with scheduled playlist curation
- Created frontend PlaylistsSection, Tooltip components and integrated into Dashboard
- Added Alembic migration for playlist tracking columns
- Fixed Docker healthcheck with curl installation
2025-12-30 09:45:19 +04:00

46 lines
1.2 KiB
Python

"""add playlist columns
Revision ID: 5ed73db9bab9
Revises: b2c3d4e5f6g7
Create Date: 2025-12-30 02:10:00.000000
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = "5ed73db9bab9"
down_revision = "b2c3d4e5f6g7"
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column(
"analysis_snapshots", sa.Column("playlist_theme", sa.String(), nullable=True)
)
op.add_column(
"analysis_snapshots",
sa.Column("playlist_theme_reasoning", sa.Text(), nullable=True),
)
op.add_column(
"analysis_snapshots",
sa.Column("six_hour_playlist_id", sa.String(), nullable=True),
)
op.add_column(
"analysis_snapshots", sa.Column("daily_playlist_id", sa.String(), nullable=True)
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column("analysis_snapshots", "daily_playlist_id")
op.drop_column("analysis_snapshots", "six_hour_playlist_id")
op.drop_column("analysis_snapshots", "playlist_theme_reasoning")
op.drop_column("analysis_snapshots", "playlist_theme")
# ### end Alembic commands ###