package org.podcastpedia.web.startpage;
import java.util.List;
import org.podcastpedia.common.domain.Podcast;
import org.podcastpedia.common.types.LanguageCode;
import org.springframework.stereotype.Service;
/**
* Service interface used to provide elements used mainly in the start page -
* intention is that those are kept forever in memory
*
* @author amasia
*
*/
@Service("startPageService")
public interface StartPageService {
/**
* Returns top rated podcasts (ORDER BY rating DESC)
*
*
* @param numberOfPodcasts
* (number of podcasts to be returned)
* @return
*/
public List<Podcast> getTopRatedPodcasts(Integer numberOfPodcasts);
/**
* Returns top rated podcasts (ORDER BY rating DESC) - 10 such podcasts
*
*
* @param languageCode
* (code of the language of the shown podcasts)
* @return
*/
public List<Podcast> getTopRatedPodcastsWithLanguage(
LanguageCode languageCode, int numberOfResults);
/**
* Returns recommended podcasts for chart.
*
* @return
*/
public List<Podcast> getRandomPodcasts(Integer numberOfPodcasts);
/**
* Returns recommended podcasts for chart.
*
* @return
*/
public List<Podcast> getRecommendedPodcasts();
public List<Podcast> getLastUpdatedPodcasts();
/**
* Returns a list with newest podcasts from the given language
*
* @param languageCode
* @return
*/
public List<Podcast> getLastUpdatedPodcasts(LanguageCode languageCode);
public List<Podcast> getNewEntries();
}