docs(quick-002): complete auto-rename duplicate playlists on import summary
- Add 002-SUMMARY.md with task details and verification results - Update STATE.md quick tasks table
This commit is contained in:
+2
-1
@@ -78,6 +78,7 @@ None currently.
|
||||
| # | Description | Date | Commit | Directory |
|
||||
|---|-------------|------|--------|-----------|
|
||||
| 001 | Multi-playlist import support | 2026-02-28 | 50c8a33 | [001-multi-playlist-import-support](./quick/001-multi-playlist-import-support/) |
|
||||
| 002 | Auto-rename duplicate playlists on import | 2026-02-28 | 8ba8bbe | [002-auto-rename-duplicate-playlists-on-import](./quick/002-auto-rename-duplicate-playlists-on-import/) |
|
||||
|
||||
## Session Continuity
|
||||
|
||||
@@ -97,5 +98,5 @@ None currently.
|
||||
|
||||
---
|
||||
*State initialized: 2026-02-27*
|
||||
Last activity: 2026-02-28 - Completed quick task 001: Multi-playlist import support
|
||||
Last activity: 2026-02-28 - Completed quick task 002: Auto-rename duplicate playlists on import
|
||||
*Last updated: 2026-02-28*
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
---
|
||||
phase: quick
|
||||
plan: 002
|
||||
subsystem: playlist-import
|
||||
tags: [playlist, import, deduplication, sqlc]
|
||||
dependency_graph:
|
||||
requires: []
|
||||
provides: [unique-playlist-names-on-import]
|
||||
affects: [playlist-import-flow]
|
||||
tech_stack:
|
||||
added: []
|
||||
patterns: [count-query-for-uniqueness, sequential-rename-suffix]
|
||||
key_files:
|
||||
created: []
|
||||
modified:
|
||||
- backend/database/sql/queries/playlists.sql
|
||||
- backend/database/sql/sqlcgen/playlists.sql.go
|
||||
- backend/playlist/playlist.go
|
||||
decisions:
|
||||
- Placed CountPlaylistsByName query between playlist CRUD and track queries for logical grouping
|
||||
- uniquePlaylistName is a private method — only ImportPlaylist calls it, keeping CreatePlaylist/CreatePlaylistWithTracks unchanged
|
||||
metrics:
|
||||
duration: 10 min
|
||||
completed: "2026-02-28"
|
||||
---
|
||||
|
||||
# Quick Task 002: Auto-rename Duplicate Playlists on Import Summary
|
||||
|
||||
**One-liner:** CountPlaylistsByName query + uniquePlaylistName helper auto-appends (1), (2), etc. on M3U import when name collides
|
||||
|
||||
## What Was Done
|
||||
|
||||
### Task 1: Add CountPlaylistsByName SQL query and regenerate sqlc
|
||||
- Added `CountPlaylistsByName :one` query to `playlists.sql` — counts playlists with exact name match
|
||||
- Regenerated sqlc producing `CountPlaylistsByName(ctx, name) (int64, error)` in Go
|
||||
- **Commit:** `04b2088`
|
||||
|
||||
### Task 2: Add uniquePlaylistName helper and wire into ImportPlaylist
|
||||
- Added `uniquePlaylistName(name string) string` method to playlist Service
|
||||
- Logic: if name exists, tries "Name (1)", "Name (2)", etc. until a free name is found
|
||||
- Wired single call `playlistName = s.uniquePlaylistName(playlistName)` in ImportPlaylist, between name derivation and CreatePlaylist call
|
||||
- CreatePlaylist and CreatePlaylistWithTracks remain unchanged — no auto-rename on manual creation
|
||||
- **Commit:** `8ba8bbe`
|
||||
|
||||
## Verification Results
|
||||
|
||||
| Check | Result |
|
||||
|-------|--------|
|
||||
| `go build ./backend/...` | ✅ Pass |
|
||||
| `go vet ./backend/...` | ✅ Pass |
|
||||
| CountPlaylistsByName in generated Go | ✅ Present |
|
||||
| uniquePlaylistName only in ImportPlaylist | ✅ 3 occurrences (comment, definition, one call site) |
|
||||
| CreatePlaylist unchanged | ✅ No uniquePlaylistName reference |
|
||||
| CreatePlaylistWithTracks unchanged | ✅ No uniquePlaylistName reference |
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
None — plan executed exactly as written.
|
||||
|
||||
## Commits
|
||||
|
||||
| # | Hash | Message |
|
||||
|---|------|---------|
|
||||
| 1 | `04b2088` | feat(quick-002): add CountPlaylistsByName SQL query and regenerate sqlc |
|
||||
| 2 | `8ba8bbe` | feat(quick-002): add uniquePlaylistName helper and wire into ImportPlaylist |
|
||||
Reference in New Issue
Block a user