Add multiple features: auth, uploads, queue management, and filters

- Replace email with username for authentication
  - Update User model, schemas, and auth endpoints
  - Update frontend login and register views
  - Add migration to remove email column

- Add multiple track upload support
  - New backend endpoint for bulk upload
  - Frontend multi-file selection with progress
  - Auto-extract metadata from ID3 tags
  - Visual upload progress for each file

- Prevent duplicate tracks in room queue
  - Backend validation for duplicates
  - Visual indication of tracks already in queue
  - Error handling with user feedback

- Add bulk track selection for rooms
  - Multi-select mode with checkboxes
  - Bulk add endpoint with duplicate filtering
  - Selection counter and controls

- Add track filters in room modal
  - Search by title and artist
  - Filter by "My tracks"
  - Filter by "Not in queue"
  - Live filtering with result counter

- Improve Makefile
  - Add build-backend and build-frontend commands
  - Add rebuild-backend and rebuild-frontend commands
  - Add rebuild-clean variants
  - Update migrations to run in Docker

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-19 19:22:35 +03:00
parent fdc854256c
commit 8a2ea5b4af
17 changed files with 848 additions and 143 deletions

View File

@@ -1,4 +1,4 @@
.PHONY: help dev dev-backend dev-frontend install install-backend install-frontend build up down logs migrate
.PHONY: help dev dev-backend dev-frontend install install-backend install-frontend build build-backend build-frontend rebuild rebuild-backend rebuild-frontend rebuild-clean rebuild-clean-backend rebuild-clean-frontend up down logs migrate
help:
@echo "EnigFM - Команды:"
@@ -8,7 +8,15 @@ help:
@echo " make dev-backend - Запустить только backend"
@echo " make dev-frontend - Запустить только frontend"
@echo ""
@echo " make build - Собрать Docker образы"
@echo " make build - Собрать Docker образы (backend + frontend)"
@echo " make build-backend - Собрать только backend"
@echo " make build-frontend - Собрать только frontend"
@echo " make rebuild - Пересобрать и запустить всё"
@echo " make rebuild-backend - Пересобрать и перезапустить только backend"
@echo " make rebuild-frontend - Пересобрать и перезапустить только frontend"
@echo " make rebuild-clean - Пересобрать всё без кеша"
@echo " make rebuild-clean-backend - Пересобрать backend без кеша"
@echo " make rebuild-clean-frontend - Пересобрать frontend без кеша"
@echo " make up - Запустить через Docker"
@echo " make down - Остановить Docker"
@echo " make logs - Показать логи Docker"
@@ -16,6 +24,7 @@ help:
@echo " make migrate - Создать миграцию БД"
@echo " make migrate-up - Применить миграции"
@echo " make migrate-down - Откатить миграцию"
@echo " make migrate-rebuild - Пересобрать контейнеры и применить миграции"
# Установка зависимостей
install: install-backend install-frontend
@@ -41,6 +50,12 @@ dev-frontend:
build:
docker-compose build
build-backend:
docker-compose build backend
build-frontend:
docker-compose build frontend
up:
docker-compose up -d
@@ -51,11 +66,35 @@ rebuild:
docker-compose down
docker-compose up -d --build
rebuild-backend:
docker-compose stop backend
docker-compose rm -f backend
docker-compose build backend
docker-compose up -d backend
rebuild-frontend:
docker-compose stop frontend
docker-compose rm -f frontend
docker-compose build frontend
docker-compose up -d frontend
rebuild-clean:
docker-compose down
docker-compose build --no-cache
docker-compose up -d
rebuild-clean-backend:
docker-compose stop backend
docker-compose rm -f backend
docker-compose build --no-cache backend
docker-compose up -d backend
rebuild-clean-frontend:
docker-compose stop frontend
docker-compose rm -f frontend
docker-compose build --no-cache frontend
docker-compose up -d frontend
logs:
docker-compose logs -f
@@ -67,13 +106,20 @@ logs-frontend:
# Миграции
migrate:
cd backend && alembic revision --autogenerate -m "$(msg)"
docker-compose exec backend alembic revision --autogenerate -m "$(msg)"
migrate-up:
cd backend && alembic upgrade head
docker-compose exec backend alembic upgrade head
migrate-down:
cd backend && alembic downgrade -1
docker-compose exec backend alembic downgrade -1
migrate-rebuild:
docker-compose down
docker-compose up -d --build
@echo "Waiting for containers to start..."
@sleep 5
docker-compose exec backend alembic upgrade head
# БД
db-shell: