feat: add CRUD operations for external_releases table
Implement GetExternalRelease, SaveExternalRelease, GetExternalReleasesByArtist, GetIgnoredReleases, and SetReleaseIgnored with 12 table-driven tests covering success and error cases. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -97,14 +97,14 @@ Build the foundation layer of NaviWatcher: a greenfield Go project with zero exi
|
||||
- [x] run tests — must pass before task 5
|
||||
|
||||
### Task 5: Database layer — CRUD operations for external_releases
|
||||
- [ ] implement `GetExternalRelease(db *DB, rgid string) (*ExternalRelease, error)`
|
||||
- [ ] implement `SaveExternalRelease(db *DB, release *ExternalRelease) error`
|
||||
- [ ] implement `GetExternalReleasesByArtist(db *DB, artistID string) ([]ExternalRelease, error)`
|
||||
- [ ] implement `GetIgnoredReleases(db *DB) ([]ExternalRelease, error)`
|
||||
- [ ] implement `SetReleaseIgnored(db *DB, rgid string, ignored bool) error`
|
||||
- [ ] write tests for all CRUD operations (success and error cases)
|
||||
- [ ] write tests for cache TTL logic (if implemented at this layer)
|
||||
- [ ] run tests — must pass before task 6
|
||||
- [x] implement `GetExternalRelease(db *DB, rgid string) (*ExternalRelease, error)`
|
||||
- [x] implement `SaveExternalRelease(db *DB, release *ExternalRelease) error`
|
||||
- [x] implement `GetExternalReleasesByArtist(db *DB, artistID string) ([]ExternalRelease, error)`
|
||||
- [x] implement `GetIgnoredReleases(db *DB) ([]ExternalRelease, error)`
|
||||
- [x] implement `SetReleaseIgnored(db *DB, rgid string, ignored bool) error`
|
||||
- [x] write tests for all CRUD operations (success and error cases)
|
||||
- [x] write tests for cache TTL logic (if implemented at this layer)
|
||||
- [x] run tests — must pass before task 6
|
||||
|
||||
### Task 6: Database layer — CRUD operations for notifications_sent
|
||||
- [ ] implement `MarkNotificationSent(db *DB, rgid string) error`
|
||||
|
||||
Reference in New Issue
Block a user