import br.alura.screanmeatch.calculo.CalculadoraDetempo;
import br.alura.screanmeatch.calculo.FiltroRecomendacao;
import br.com.alura.screanmatch.modelos.Episodio;
import br.com.alura.screanmatch.modelos.Filme;
import br.com.alura.screanmatch.modelos.Serie;
public class Principal {
public static void main(String[] args) {
Filme meuFilme = new Filme();
meuFilme.setNome("Filme: Ainda estou aqui");
meuFilme.setAnoDeLancamento( 2024);
meuFilme.setDuracaoEmMinutos( 180);
System.out.println("Duração do meu filme: " + meuFilme.getDuracaoEmMinutos());
meuFilme.exibirFichaTecnica();
meuFilme.avalia(8);
meuFilme.avalia(9);
meuFilme.avalia(10);
System.out.println("Total de avaliações: " + meuFilme.getTotalDeAvaliacoes());
System.out.println("Media das avaliações: " + meuFilme.pegaMedia());
Serie aRodaDoTempo = new Serie();
aRodaDoTempo.setNome("Série: A Roda Do Tempo");
aRodaDoTempo.setAnoDeLancamento(2000);
aRodaDoTempo.exibirFichaTecnica();
aRodaDoTempo.setTemporadas(10);
aRodaDoTempo.setEpisodiosPorTemporada(10);
aRodaDoTempo.setMinutosPorEpisodios(50);
System.out.println("Duração para maratonar A roda do tempo " + aRodaDoTempo.getDuracaoEmMinutos());
CalculadoraDetempo calculadora = new CalculadoraDetempo();
calculadora.inclui(meuFilme);
calculadora.inclui(aRodaDoTempo);
System.out.println("Tempo para ver todos: "+calculadora.getTempototal());
FiltroRecomendacao filtro = new FiltroRecomendacao();
filtro.fitra(meuFilme);
Episodio episodio = new Episodio();
episodio.setNome("1");
System.out.println("A Roda do tempo episódio "+ episodio.getNome());
episodio.setSerie(aRodaDoTempo);
episodio.setTotalVisualizacoes(300);
filtro.fitra(episodio);
}
}
public interface Classificavel {
int getClassificacao();
}
package br.alura.screanmeatch.calculo;
public class FiltroRecomendacao {
private String recomendacao;
public void fitra(Classificavel classificavel){
if (classificavel.getClassificacao() >=4){
System.out.println("Está entre os preferidos do momento");
} else if (classificavel.getClassificacao() >= 2 ){
System.out.println("Muito bem avaliado no momento");
} else {
System.out.println("Coloque na sua lista para assistir depois");
}
}
}
package br.alura.screanmeatch.calculo;
public class FiltroRecomendacao {
private String recomendacao;
public void fitra(Classificavel classificavel){
if (classificavel.getClassificacao() >=4){
System.out.println("Está entre os preferidos do momento");
} else if (classificavel.getClassificacao() >= 2 ){
System.out.println("Muito bem avaliado no momento");
} else {
System.out.println("Coloque na sua lista para assistir depois");
}
}
}
package br.com.alura.screanmatch.modelos;
import br.alura.screanmeatch.calculo.Classificavel;
public class Episodio implements Classificavel {
private int numero;
private String nome;
private Serie serie;
private int totalVisualizacoes;
public int getTotalVisualizacoes() {
return totalVisualizacoes;
}
public void setTotalVisualizacoes(int totalVisualizacoes) {
this.totalVisualizacoes = totalVisualizacoes;
}
public int getNumero() {
return numero;
}
public String getNome() {
return nome;
}
public Serie getSerie() {
return serie;
}
public void setNumero(int numero) {
this.numero = numero;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setSerie(Serie serie) {
this.serie = serie;
}
@Override
public int getClassificacao() {
if (totalVisualizacoes > 100){
return 4 ;
} else{
return 2;
}
}
}
package br.com.alura.screanmatch.modelos;
import br.alura.screanmeatch.calculo.Classificavel;
public class Filme extends Titulo implements Classificavel {
private String diretor;
public String getDiretor() {
return diretor;
}
public void setDiretor(String diretor) {
this.diretor = diretor;
}
@Override
public int getClassificacao() {
return (int) pegaMedia()/2;
}
}