feat: migrate to PostgreSQL and enhance playlist curation

- Migrate database from SQLite to PostgreSQL (100.91.248.114:5433)
- Fix playlist curation to use actual top tracks instead of AI name matching
- Add /playlists/history endpoint for historical playlist viewing
- Add Playlist Archives section to frontend with expandable history
- Add playlist-modify-* scopes to Spotify OAuth for playlist creation
- Rewrite Genius client to use official API (fixes 403 scraping blocks)
- Ensure playlists are created on Spotify before curation attempts
- Add DATABASE.md documentation for PostgreSQL schema
- Add migrations for PlaylistConfig and composition storage
This commit is contained in:
bnair123
2025-12-30 22:24:56 +04:00
parent 26b4895695
commit 272148c5bf
19 changed files with 1130 additions and 145 deletions

View File

@@ -130,3 +130,18 @@ class AnalysisSnapshot(Base):
daily_playlist_id = Column(
String, nullable=True
) # Spotify playlist ID for 24-hour playlist
playlist_composition = Column(JSON, nullable=True)
playlist_composition = Column(
JSON, nullable=True
) # Store the track list at this snapshot
class PlaylistConfig(Base):
__tablename__ = "playlist_config"
key = Column(String, primary_key=True, index=True) # e.g., "six_hour", "daily"
spotify_id = Column(String, nullable=False)
last_updated = Column(DateTime, default=datetime.utcnow)
current_theme = Column(String, nullable=True)
description = Column(String, nullable=True)
composition = Column(JSON, nullable=True)