package com.suno.android.common_data.discover import androidx.paging.Pager import androidx.paging.PagingConfig import androidx.paging.PagingData import com.suno.android.common_core_utils.SunoLogger import com.suno.android.common_data.discover.DiscoverConstants.NETWORK_PAGE_SIZE import com.suno.android.common_data.discover.DiscoverConstants.NETWORK_PREFETCH_DISTANCE import com.suno.android.common_data.mappers.playlists.DiscoverFeedSection import com.suno.android.common_networking.remote.discover.DiscoverService import kotlinx.coroutines.flow.Flow import javax.inject.Inject internal class NetworkDiscoverRepository @Inject constructor( private val loggerFactory: SunoLogger.Factory, private val discoverService: DiscoverService, ) : DiscoverRepository { override fun getFeedStream( page: Int, pageSize: Int, startIndex: Int, ): Flow> = Pager( config = PagingConfig( pageSize = NETWORK_PAGE_SIZE, prefetchDistance = NETWORK_PREFETCH_DISTANCE, enablePlaceholders = false, ), pagingSourceFactory = { DiscoverFeedPagingSource( loggerFactory = loggerFactory, discoverService = discoverService, ) }, ).flow }