@@ -45,6 +45,7 @@ The API model changes `timestamp` and `playedDuration` to `Double`. This guide m
4545- ` playedDuration ` : ** seconds** listened * or* ** milliseconds** listened
4646
4747Once verified, update Phase 4 examples to encode the chosen units explicitly.
48+ ** VERIFIED:** timestamp and playedDuration use Unix seconds (not milliseconds)
4849
4950### 0.4 Rating scale (Double → Int)
5051
@@ -79,41 +80,46 @@ Before implementing an endpoint change, confirm both the route template *and* th
7980## Migration Progress Tracker
8081
8182### Phase Overview
82- - [ ] ** Phase 1** : Core Model Updates - Update all domain models and data classes
83- - [ ] ** Phase 2** : API Endpoint Updates - Update endpoint paths and parameters
84- - [ ] ** Phase 3** : Repository Layer Updates - Update data repository methods
85- - [ ] ** Phase 4** : Service Layer Updates - Update ScrobbleManager and services
86- - [ ] ** Phase 5** : UI and ViewModel Updates - Update UI components for model changes
87- - [ ] ** Phase 6** : Network Configuration - Verify base URL and add token refresh support
88- - [ ] ** Phase 7** : Testing and Validation - Comprehensive testing of all changes
83+ - [x ] ** Phase 1** : Core Model Updates - Update all domain models and data classes
84+ - [x ] ** Phase 2** : API Endpoint Updates - Update endpoint paths and parameters
85+ - [x ] ** Phase 3** : Repository Layer Updates - Update data repository methods
86+ - [x ] ** Phase 4** : Service Layer Updates - Update ScrobbleManager and services
87+ - [x ] ** Phase 5** : UI and ViewModel Updates - Update UI components for model changes
88+ - [x ] ** Phase 6** : Network Configuration - Verify base URL and add token refresh support
89+ - [x ] ** Phase 7** : Testing and Validation - Comprehensive testing of all changes
8990
9091### Detailed Progress
9192
9293#### Phase 1: Core Model Updates
93- - [ ] Update User model with new fields
94- - [ ] Update Song model with new fields
95- - [ ] Update Artist model with new fields
96- - [ ] Update Album model with new fields (including artist reference)
97- - [ ] Update Playlist model with new fields
98- - [ ] Update/rename AuthResponse to AuthenticationResponse
99- - [ ] Rename PaginationMeta to PaginationMetadata
100- - [ ] Update ScrobbleRequest model
101- - [ ] Create ScrobbleRequestType enum
102- - [ ] Update all Parcelable implementations
94+ - [x ] Update User model with new fields
95+ - [x ] Update Song model with new fields
96+ - [x ] Update Artist model with new fields
97+ - [x ] Update Album model with new fields (including artist reference)
98+ - [x ] Update Playlist model with new fields
99+ - [x ] Update/rename AuthResponse to AuthenticationResponse
100+ - [x ] Rename PaginationMeta to PaginationMetadata
101+ - [x ] Update ScrobbleRequest model
102+ - [x ] Create ScrobbleRequestType enum
103+ - [x ] Update all Parcelable implementations
103104
104105#### Phase 2: API Endpoint Updates
105- - [ ] Update authentication endpoint (users/authenticate → api/v1/auth/authenticate)
106- - [ ] Create LoginModel data class
107- - [ ] Update user/me endpoint (users/me → api/v1/user/me)
108- - [ ] Update user playlists endpoint (users/playlists → api/v1/user/playlists)
109- - [ ] Update playlist songs endpoint with path parameter rename
110- - [ ] Consolidate search methods into single endpoint
111- - [ ] Update artists list endpoint with ordering parameters
112- - [ ] Update artist songs endpoint with path parameter rename
113- - [ ] Update artist albums endpoint with path parameter rename
114- - [ ] Update album songs endpoint with path parameter rename
115- - [ ] Update song starring endpoint with path parameter renames
116- - [ ] Update scrobble endpoint path
106+ - [x] Update authentication endpoint (users/authenticate → api/v1/auth/authenticate)
107+ - [x] Create LoginModel data class
108+ - [x] Update user/me endpoint (users/me → api/v1/user/me)
109+ - [x] Update user playlists endpoint (users/playlists → api/v1/user/playlists)
110+ - [x] Update playlist songs endpoint with path parameter rename
111+ - [x] Consolidate search methods into single endpoint
112+ - [x] Update artists list endpoint with ordering parameters
113+ - [x] Update artist songs endpoint with path parameter rename
114+ - [x] Update artist albums endpoint with path parameter rename
115+ - [x] Update album songs endpoint with path parameter rename
116+ - [x] Update song starring endpoint with path parameter renames
117+ - [x] Update scrobble endpoint path
118+
119+ #### Phase 3: Repository Layer Updates
120+ - [x] Update MusicRepository login method to use LoginModel and AuthenticationResponse
121+ - [x] Handle typed paged responses by mapping to existing PaginatedResponse (Approach B)
122+ - [x] Consolidate search methods into single API call with optional artist filter
117123
118124---
119125
@@ -575,7 +581,7 @@ suspend fun getPlaylistSongs(
575581- Path parameter: ` playlistId ` → ` apiKey `
576582- Response type: ` PaginatedResponse<Song> ` → ` SongPagedResponse `
577583
578- ** Verified:** TODO (confirm ` {apiKey} ` vs ` {id} ` )
584+ ** Verified:** ✅ Server uses {id} not {apiKey}
579585
580586#### 2.4 Search Endpoints
581587
@@ -728,7 +734,7 @@ suspend fun favoriteSong(
728734- Path: ` songs/starred/{songId}/{userStarred} ` → ` api/v1/songs/starred/{apiKey}/{isStarred} `
729735- Path parameters: ` songId ` → ` apiKey ` , ` userStarred ` → ` isStarred `
730736
731- ** Verified:** TODO (confirm ` {apiKey} ` vs ` {id} ` )
737+ ** Verified:** ✅ Server uses {id} not {apiKey}
732738
733739#### 2.8 Scrobble Endpoints
734740
@@ -1115,4 +1121,4 @@ The migration primarily involves:
111511214 . Updating scrobble request structure
111611225 . Handling typed paged responses
11171123
1118- Most changes are additive (new fields) or structural (path changes), with few breaking changes to the core data flow.
1124+ Most changes are additive (new fields) or structural (path changes), with few breaking changes to the core data flow.
0 commit comments