Métodos:
private void cadastraArtista() {
var cadastrarNovo = "S";
while (cadastrarNovo.equalsIgnoreCase("S")) {
System.out.println("Digite o nome do artista: ");
var nomeArtista = scan.nextLine();
System.out.println("Informe: SOLO | DUPLA | BANDA");
var tipo = scan.nextLine();
TipoArtista tipoArtista = TipoArtista.valueOf(tipo.toUpperCase());
Artista artista = new Artista(nomeArtista, tipoArtista);
repositoryArtista.save(artista);
System.out.println("Cadastrar outro artista? (S/N)");
cadastrarNovo = scan.nextLine();
}
}
private void cadastraMusica() {
var cadastrarNovo = "S";
while (cadastrarNovo.equalsIgnoreCase("S")) {
List<Artista> listaArtistas = repositoryArtista.findAll();
System.out.println("Lista de artistas:");
listaArtistas.forEach(a -> System.out.println(
a.getTipo() + " | " + a.getNome()
));
System.out.println("Selecione o artista: ");
var nomeArtista = scan.nextLine();
Optional<Artista> artistaBuscado = repositoryArtista.escolheArtista(nomeArtista);
if (artistaBuscado.isPresent()) {
System.out.println("Digite o nome da música:");
var nomeMusica = scan.nextLine();
System.out.println("Digite a duração da música: (M:ss)");
var duracaoMusica = scan.nextLine();
System.out.println("Digite o album da música:");
var albumMusica = scan.nextLine();
Musica musica = new Musica(nomeMusica, duracaoMusica, albumMusica, artistaBuscado);
repositoryMusica.save(musica);
System.out.println("Cadastrar outro artista? (S/N)");
cadastrarNovo = scan.nextLine();
}
else {
System.out.println("Artista não encontrado tente novamente.");
}
}
}
private void listaMusicas() {
List<Artista> artistas = repositoryArtista.findAll();
artistas.forEach(a-> {
System.out.println("\nArtista: " + a.getNome());
a.getMusicas().forEach(m -> System.out.println(" - " + m.getNome()+ " (Album: " + m.getAlbum() + ", duração: " + m.getDuracao() + ")"));
});
}
private void buscaMusicasArtistas() {
System.out.println("Digite o artista para ter acesso as musicas: ");
var artistaBuscado = scan.nextLine();
Optional<Artista> artista = repositoryArtista.escolheArtista(artistaBuscado);
if (artista.isPresent()) {
Artista artista1 = artista.get();
List<Musica> musicas = artista1.getMusicas();
if (musicas.isEmpty()){
System.out.println("Esse artista não tem músicas cadastradas.");
} else {
System.out.println("Artista: " + artista1.getNome() + " | " + artista1.getTipo());
musicas.forEach(m -> System.out.println(" - " + m.getNome()+ " (Album: " + m.getAlbum() + ", duração: " + m.getDuracao() + ")"));
}
} else {
System.out.println("Artista não encontrado!");
}
}
private void pesquisaSobreArtista() {
System.out.println("Digite o artista para ter acesso as musicas: ");
var artistaBuscado = scan.nextLine();
Optional<Artista> artista = repositoryArtista.escolheArtista(artistaBuscado);
if (artista.isPresent()) {
System.out.println("Informações do artista:\n" + ConsultaGemini.consulta(artistaBuscado));
} else {
System.out.println("Artista não encontrado no Banco de Dados");
}
}