package negocio;

import impbd.FilmeDaoDB;
import java.util.List;
import model.Filme;
import util.ExceptionUtil;
import dao.IFilme;

/**
 *
 * @author gabrielgrs, robertoaugusto
 */
public class FilmesNegocio {
    private IFilme filmeDao;
    
    public FilmesNegocio(){
        filmeDao = new FilmeDaoDB();
    }
  
    public void salvar(Filme filme) throws ExceptionUtil {
        validar(filme);
        filmeDao.salvar(filme);
    }
    
    public List<Filme> listar() {
        return (filmeDao.listar());
    }
    
    public void deletar(Filme filme) throws ExceptionUtil {
        if (filme == null || filme.getNome() == null) {
            throw new ExceptionUtil("Filme inválido!");
        }
        filmeDao.deletar(filme);
    }

    public void atualizar(Filme filme) throws ExceptionUtil {
        if (filme == null || filme.getNome() == null) {
            throw new ExceptionUtil("Filme inválido!");
        }
        validar(filme);
        filmeDao.atualizar(filme);
    }
    
    public List<Filme> procurarPorNome(String nome) throws ExceptionUtil {
        if (nome == null || nome.isEmpty()) {
            throw new ExceptionUtil("Campo nome não informado");
        }
        return(filmeDao.procurarPorNome(nome));
    }
    
    private void validar(Filme filme) throws ExceptionUtil {
        if (filme.getNome() == null) {
            throw new ExceptionUtil("Nome é um campo obrigatório");
        }
        if (filme.getGenero() == null){
            throw new ExceptionUtil("Gênero é um campo obrigatório");
        }        
        if (filme.getSinopse() == null){
            throw new ExceptionUtil("Sinópse é um campo obrigatório");
        }
    }
   
    
    
}
