Sansan
0894d65ec5
Merge branch 'develop' into feature/statistics-api
...
# Conflicts:
# internal/backend/music.go
# internal/backend/sync.go
# internal/server/server.go
# internal/server/syncHandler.go
# internal/server/sync_handler_test.go
# internal/server/test_helpers.go
# internal/server/zz_music_handler_test.go
2026-06-13 11:51:56 +02:00
Sansan
b0418b4f38
feat: Add id column to song table and prep for UUID migration
...
- Add id serial4 PK to song table (was composite PK)
- Update queries to use soundtrack_id + path
- Add UUID columns to soundtrack and song (nullable)
- Add migration tracking table
TODO: Run sqlc generate, then create backfill migration (000008)
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai >
2026-06-08 20:36:12 +02:00
Sansan
cec408187d
feat: Rename game to soundtrack throughout codebase
...
- Database migration: rename game table to soundtrack
- Rename game_name to soundtrack_name, game_id to soundtrack_id
- Update all SQL queries in soundtrack.sql, song.sql, song_list.sql, statistics.sql
- Regenerate sqlc code (soundtrack.sql.go, song.sql.go, etc.)
- Update backend: music.go, sync.go, statistics.go
- Update server: musicHandler.go, syncHandler.go, routes.go
- Update frontend: hello.go
- Keep URL paths as /games for backward compatibility
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai >
2026-06-08 20:36:12 +02:00
Sansan
4c2db11cc5
feat: Implement Statistics API with 8 endpoints under /api/v1/statistics/
...
- Add statistics.sql with 8 SQL queries for play count statistics
- Generate repository code via sqlc
- Add backend/statistics.go with business logic
- Add server/statistics_handler.go with Echo handlers
- Register protected routes under /api/v1/statistics/ with token auth
- Endpoints: games/most-played, games/least-played, games/never-played,
games/last-played, games/oldest-played, songs/most-played,
songs/least-played, summary
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai >
2026-06-08 20:33:29 +02:00
Sansan
89e884fae9
feat: Implement Session Token System with /api/v1 base path
...
- Add migration 000004 for sessions table and performance indexes
- Create session.sql queries for CRUD operations
- Generate session repository code with sqlc
- Create token auth middleware for Echo framework
- Create token handler with create/delete/cleanup endpoints
- Add /api/v1 router with token authentication infrastructure
- Update dbHelper.go to use Up() instead of Migrate(2)
- Update server.go to initialize token handler
- Existing endpoints remain functional (to be deprecated)
New endpoints:
- POST /api/v1/token - Create new session token
- DELETE /api/v1/token - Invalidate token
- POST /api/v1/token/cleanup - Remove expired sessions
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai >
2026-06-08 20:33:29 +02:00
Sansan
6cc014ffa3
feat: Implement Session Token System with /api/v1 base path
...
- Add migration 000004 for sessions table and performance indexes
- Create session.sql queries for CRUD operations
- Generate session repository code with sqlc
- Create token auth middleware for Echo framework
- Create token handler with create/delete/cleanup endpoints
- Add /api/v1 router with token authentication infrastructure
- Update dbHelper.go to use Up() instead of Migrate(2)
- Update server.go to initialize token handler
- Existing endpoints remain functional (to be deprecated)
New endpoints:
- POST /api/v1/token - Create new session token
- DELETE /api/v1/token - Invalidate token
- POST /api/v1/token/cleanup - Remove expired sessions
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai >
2026-06-08 20:15:38 +02:00
Sansan
fabd6a6931
Fix OpenAPI endpoint to serve swagger.json directly
2026-05-18 21:46:51 +02:00
Sansan
806e88adeb
#1 - Created request to check newest version of the app
...
Build / build (push) Successful in 2m35s
#2 - Added request to download the newest version of the app
#3 - Added request to check progress during sync
#4 - Now blocking all request while sync is in progress
#5 - Implemented ants for thread pooling
#6 - Changed the sync request to now only start the sync
2025-08-23 11:36:03 +02:00
Sansan
d653463f58
Moved around more code. Implemented more sqlc. Added support to generate swagger.
...
Added support for profiling. Removed the pkg module altogether.
Everything except old sync is now using code generated by sqlc.
2025-01-15 16:04:14 +01:00