Aprobado y Aplicado
La gestión previa de playlists estaba dispersa y limitada a una única playlist por género. Esto causaba acoplamiento en AppNavigation, redundancia en mappers y una experiencia de usuario estática. El objetivo del refactor es permitir que un género (ej. "Electronic") se alimente de múltiples playlists de Spotify, mejorando la variedad y escalabilidad.
Se ha implementado una cadena de responsabilidad clara desde la capa de datos hasta la UI:
GenrePlaylistProvider.ktorg.ilerna.song_swipe_frontend.data.provider.GenrePlaylistProvidergenrePlaylistMap: Map<String, List<String>>: Almacena múltiples IDs por género.getPlaylistIdsForGenre(genre: String): List<String>: Método consultado por el ViewModel para obtener la lista de fuentes.SpotifyDataSourceImpl.kt):getAllTracksForPlaylist(playlistId: String): Implementa paginación automática (offset/limit) hasta agotar la playlist en Spotify, devolviendo una lista plana de SpotifyPlaylistItemDto.SpotifyRepositoryImpl.kt):getMultiPlaylistTracks(playlistIds: List<String>)async controladas por un Semaphore(3) para no saturar los límites de la API de Spotify.distinctBy { it.id } para eliminar tracks repetidos entre playlists hermanas.DEFAULT_SET_SIZE (50 tracks) para optimizar el consumo de memoria.