package br.com.ftt.bettaserver.restful.business;
import java.util.List;
import br.com.ftt.bettaserver.restful.dao.FilmeDAO;
import br.com.ftt.bettaserver.restful.database.util.StringConstants;
import br.com.ftt.bettaserver.restful.form.Filmes;
import br.com.ftt.bettaserver.restful.form.Playlist;
public class FilmesBusiness
{
private static FilmesBusiness filmesBusiness;
private FilmeDAO dao = new FilmeDAO( ) ;
private FilmesBusiness( )
{
}
public List<Filmes> buscaFavoritos( int idUsuario )
{
return dao.buscaFavoritos( idUsuario ) ;
}
public List<Filmes> buscarFilme( String nome )
{
return dao.buscarFilme( nome ) ;
}
public Filmes buscarFilme( int filmeId, int userId )
{
return dao.buscarFilme( filmeId, userId ) ;
}
public String buscaPlaylistPadrao( int idFilme )
{
StringBuilder sb = new StringBuilder( ) ;
int idioma = dao.buscaIdiomaPadrao( idFilme );
List<Playlist> playlists = dao.buscarFilmePlaylist( idFilme, idioma ) ;
if( playlists != null )
{
appendPlaylistData( sb, playlists );
}
return sb.toString( ) ;
}
public String buscaPlaylist( int idFilme, int idIdioma )
{
StringBuilder sb = new StringBuilder( ) ;
List<Playlist> playlists = dao.buscarFilmePlaylist( idFilme, idIdioma ) ;
if( playlists != null )
{
appendPlaylistData( sb, playlists );
}
return sb.toString( ) ;
}
private void appendPlaylistData( StringBuilder sb, List<Playlist> playlists )
{
sb.append( "#EXTM3U" + StringConstants.lineSeparator ) ;
for( Playlist playlist : playlists )
{
sb.append( "#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=" + playlist.getBitrate( ) + StringConstants.lineSeparator ) ;
sb.append( playlist.toString( ) + StringConstants.lineSeparator ) ;
}
}
public List<Filmes> buscaFilmesPaginadosPorCategoria( int categoriaId )
{
return dao.buscaFilmesPaginadosPorCategoria( categoriaId ) ;
}
public static FilmesBusiness getInstance( )
{
if( filmesBusiness == null )
{
filmesBusiness = new FilmesBusiness( ) ;
}
return filmesBusiness ;
}
}