BREAKING CHANGE: This commit introduces significant schema changes that require
a fresh database. See migration instructions below.
Changes:
- Added Flask-Login and bcrypt dependencies to pyproject.toml
- Created User model with password hashing methods
- Updated Channel model:
- Added user_id foreign key relationship
- Added rss_url field
- Renamed last_fetched to last_fetched_at
- Added composite unique index on (user_id, channel_id)
- Updated VideoEntry model:
- Added video_id, video_url, thumbnail_url, description, published_at fields
- Renamed link to video_url
- Added indexes for performance
- Updated feed_parser.py:
- Enhanced FeedEntry to extract thumbnail, description, published date
- Added _extract_video_id() method for parsing YouTube URLs
- Updated save_to_db() to require user_id parameter
- Parse and store all metadata from RSS feeds
- Generated Alembic migration: a3c56d47f42a
Migration Instructions:
1. Stop all services: docker-compose down -v
2. Apply migrations: docker-compose up -d && docker-compose exec app alembic upgrade head
3. Or for local dev: rm yottob.db && alembic upgrade head
Next Steps (TODO):
- Configure Flask-Login in main.py
- Create login/register/logout routes
- Add @login_required decorators to protected routes
- Update all routes to filter by current_user
- Create auth templates (login.html, register.html)
- Update base.html with auth navigation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>