From ba564e456b855a9d4ce303a888bae641f94cd805 Mon Sep 17 00:00:00 2001
From: Wander Carvalho <138515773+Wander-samix@users.noreply.github.com>
Date: Mon, 22 Apr 2024 07:21:37 -0300
Subject: [PATCH 01/17] Add files via upload
---
comex-main_S6/README.md | 13 ++
comex-main_S6/pom.xml | 45 ++++++
.../main/java/br/com/alura/comex/Main.java | 81 ++++++++++
.../br/com/alura/comex/ProcessadorDeCsv.java | 56 +++++++
.../br/com/alura/comex/cliente/Cliente.java | 40 +++++
.../com/alura/comex/endereco/ConsultaCep.java | 37 +++++
.../br/com/alura/comex/endereco/Endereco.java | 83 ++++++++++
.../alura/comex/pedido/OrdenacaoPedido.java | 37 +++++
.../br/com/alura/comex/pedido/Pedido.java | 147 ++++++++++++++++++
.../alura/comex/produto/ComparaProduto.java | 23 +++
.../br/com/alura/comex/produto/Produto.java | 77 +++++++++
.../comex/testes/ImpressaoDadosProduto.java | 13 ++
.../br/com/alura/comex/testes/TesteCep.java | 15 ++
.../alura/comex/testes/TesteClassePedido.java | 38 +++++
.../com/alura/comex/testes/TesteCliente.java | 106 +++++++++++++
.../com/alura/comex/testes/TesteProduto.java | 37 +++++
comex-main_S6/src/main/resources/pedidos.csv | 17 ++
comex-main_S6/src/test/resources/pedidos.csv | 17 ++
.../target/classes/ComparaProduto.class | Bin 0 -> 2102 bytes
.../br/com/alura/comex/ProcessadorDeCsv.class | Bin 0 -> 2819 bytes
.../br/com/alura/comex/cliente/Cliente.class | Bin 0 -> 2047 bytes
.../alura/comex/endereco/ConsultaCep.class | Bin 0 -> 3310 bytes
.../com/alura/comex/endereco/Endereco.class | Bin 0 -> 3144 bytes
.../alura/comex/pedido/OrdenacaoPedido.class | Bin 0 -> 3589 bytes
.../br/com/alura/comex/pedido/Pedido.class | Bin 0 -> 3016 bytes
.../br/com/alura/comex/produto/Produto.class | Bin 0 -> 2999 bytes
.../comex/testes/ImpressaoDadosProduto.class | Bin 0 -> 724 bytes
.../br/com/alura/comex/testes/TesteCep.class | Bin 0 -> 942 bytes
.../comex/testes/TesteClassePedido.class | Bin 0 -> 3170 bytes
.../com/alura/comex/testes/TesteCliente.class | Bin 0 -> 3524 bytes
.../com/alura/comex/testes/TesteProduto.class | Bin 0 -> 1742 bytes
comex-main_S6/target/classes/pedidos.csv | 17 ++
32 files changed, 899 insertions(+)
create mode 100644 comex-main_S6/README.md
create mode 100644 comex-main_S6/pom.xml
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/Main.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/ProcessadorDeCsv.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/cliente/Cliente.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/endereco/ConsultaCep.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/endereco/Endereco.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/pedido/OrdenacaoPedido.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/pedido/Pedido.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/produto/ComparaProduto.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/produto/Produto.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/testes/ImpressaoDadosProduto.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteCep.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteClassePedido.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteCliente.java
create mode 100644 comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteProduto.java
create mode 100644 comex-main_S6/src/main/resources/pedidos.csv
create mode 100644 comex-main_S6/src/test/resources/pedidos.csv
create mode 100644 comex-main_S6/target/classes/ComparaProduto.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/ProcessadorDeCsv.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/cliente/Cliente.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/endereco/ConsultaCep.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/endereco/Endereco.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/pedido/OrdenacaoPedido.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/pedido/Pedido.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/produto/Produto.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/testes/ImpressaoDadosProduto.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/testes/TesteCep.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/testes/TesteClassePedido.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/testes/TesteCliente.class
create mode 100644 comex-main_S6/target/classes/br/com/alura/comex/testes/TesteProduto.class
create mode 100644 comex-main_S6/target/classes/pedidos.csv
diff --git a/comex-main_S6/README.md b/comex-main_S6/README.md
new file mode 100644
index 00000000..cb743333
--- /dev/null
+++ b/comex-main_S6/README.md
@@ -0,0 +1,13 @@
+# Comex
+
+## Informações gerais dos pedidos em _pedidos.csv_
+- Campos: **CATEGORIA, PRODUTO, PREÇO, QUANTIDADE, DATA, CLIENTE**
+
+
+### RELATÓRIO DE VALORES TOTAIS
+- TOTAL DE PEDIDOS REALIZADOS: 16
+- TOTAL DE PRODUTOS VENDIDOS: 35
+- TOTAL DE CATEGORIAS: 5
+- MONTANTE DE VENDAS: R$ 178.374,49
+- PEDIDO MAIS BARATO: R$ 95,17 (Clean Code)
+- PEDIDO MAIS CARO: R$ 55.056,00 (iPhone 13 Pro)
diff --git a/comex-main_S6/pom.xml b/comex-main_S6/pom.xml
new file mode 100644
index 00000000..2206296f
--- /dev/null
+++ b/comex-main_S6/pom.xml
@@ -0,0 +1,45 @@
+
+
+ 4.0.0
+
+ br.com.alura
+ comex
+ 0.0.1-SNAPSHOT
+
+
+ 17
+ 17
+
+
+
+
+ ch.qos.logback
+ logback-classic
+ 1.2.6
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.8.2
+ test
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.13.1
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+ 2.13.1
+
+
+ com.opencsv
+ opencsv
+ 5.7.1
+
+
+
+
\ No newline at end of file
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/Main.java b/comex-main_S6/src/main/java/br/com/alura/comex/Main.java
new file mode 100644
index 00000000..0cd05711
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/Main.java
@@ -0,0 +1,81 @@
+//package br.com.alura.comex;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.net.URISyntaxException;
+import java.text.NumberFormat;
+import java.util.Arrays;
+import java.util.Locale;
+
+//public class Main {
+//
+// private static final Logger logger = LoggerFactory.getLogger(Main.class);
+//
+// public static void main(String[] args) throws IOException, URISyntaxException {
+// Pedido[] pedidos = ProcessadorDeCsv.processaArquivo("pedidos.csv");
+//
+// int totalDeProdutosVendidos = 0;
+// int totalDePedidosRealizados = 0;
+// BigDecimal montanteDeVendas = BigDecimal.ZERO;
+// Pedido pedidoMaisBarato = null;
+// Pedido pedidoMaisCaro = null;
+//
+// String[] categoriasProcessadas = new String[10];
+// int totalDeCategorias = 0;
+//
+// for (int i = 0; i < pedidos.length; i++) {
+// Pedido pedidoAtual = pedidos[i];
+//
+// if (pedidoAtual == null) {
+// break;
+// }
+//
+// if (pedidoMaisBarato == null || pedidoAtual.getPreco().multiply(new BigDecimal(pedidoAtual.getQuantidade())).compareTo(pedidoMaisBarato.getPreco().multiply(new BigDecimal(pedidoMaisBarato.getQuantidade()))) < 0) {
+// pedidoMaisBarato = pedidoAtual;
+// }
+//
+// if (pedidoMaisCaro == null || pedidoAtual.getPreco().multiply(new BigDecimal(pedidoAtual.getQuantidade())).compareTo(pedidoMaisCaro.getPreco().multiply(new BigDecimal(pedidoMaisCaro.getQuantidade()))) > 0) {
+// pedidoMaisCaro = pedidoAtual;
+// }
+//
+// montanteDeVendas = montanteDeVendas.add(pedidoAtual.getPreco().multiply(new BigDecimal(pedidoAtual.getQuantidade())));
+// totalDeProdutosVendidos += pedidoAtual.getQuantidade();
+// totalDePedidosRealizados++;
+//
+// boolean jahProcessouCategoria = false;
+// for (int j = 0; j < categoriasProcessadas.length; j++) {
+// if (pedidoAtual.getCategoria().equalsIgnoreCase(categoriasProcessadas[j])) {
+// jahProcessouCategoria = true;
+// }
+// }
+//
+// if (!jahProcessouCategoria) {
+// totalDeCategorias++;
+//
+// if (categoriasProcessadas[categoriasProcessadas.length - 1] != null) {
+// categoriasProcessadas = Arrays.copyOf(categoriasProcessadas, categoriasProcessadas.length * 2);
+// } else {
+// for (int k = 0; k < categoriasProcessadas.length; k++) {
+// if (categoriasProcessadas[k] == null) {
+// categoriasProcessadas[k] = pedidoAtual.getCategoria();
+// break;
+// }
+// }
+// }
+// }
+// }
+//
+// logger.info("##### RELATÓRIO DE VALORES TOTAIS #####");
+// logger.info("TOTAL DE PEDIDOS REALIZADOS: {}", totalDePedidosRealizados);
+// logger.info("TOTAL DE PRODUTOS VENDIDOS: {}", totalDeProdutosVendidos);
+// logger.info("TOTAL DE CATEGORIAS: {}", totalDeCategorias);
+// logger.info("MONTANTE DE VENDAS: {}", NumberFormat.getCurrencyInstance(new Locale("pt", "BR")).format(montanteDeVendas.setScale(2, RoundingMode.HALF_DOWN)));
+// logger.info("PEDIDO MAIS BARATO: {} ({})", NumberFormat.getCurrencyInstance(new Locale("pt", "BR")).format(pedidoMaisBarato.getPreco().multiply(new BigDecimal(pedidoMaisBarato.getQuantidade())).setScale(2, RoundingMode.HALF_DOWN)), pedidoMaisBarato.getProduto());
+// logger.info("PEDIDO MAIS CARO: {} ({})\n", NumberFormat.getCurrencyInstance(new Locale("pt", "BR")).format(pedidoMaisCaro.getPreco().multiply(new BigDecimal(pedidoMaisCaro.getQuantidade())).setScale(2, RoundingMode.HALF_DOWN)), pedidoMaisCaro.getProduto());
+// logger.info("### FIM DO RELATÓRIO ###");
+// }
+//}
\ No newline at end of file
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/ProcessadorDeCsv.java b/comex-main_S6/src/main/java/br/com/alura/comex/ProcessadorDeCsv.java
new file mode 100644
index 00000000..1a34376f
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/ProcessadorDeCsv.java
@@ -0,0 +1,56 @@
+package br.com.alura.comex;
+
+import br.com.alura.comex.pedido.Pedido;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.Path;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.Arrays;
+import java.util.Scanner;
+
+public class ProcessadorDeCsv {
+
+ public static Pedido[] processaArquivo(String nomeDoArquivo) {
+ try {
+ URL recursoCSV = ClassLoader.getSystemResource(nomeDoArquivo);
+ Path caminhoDoArquivo = caminhoDoArquivo = Path.of(recursoCSV.toURI());
+
+ Scanner leitorDeLinhas = new Scanner(caminhoDoArquivo);
+
+ leitorDeLinhas.nextLine();
+
+ Pedido[] pedidos = new Pedido[10];
+
+ int quantidadeDeRegistros = 0;
+ while (leitorDeLinhas.hasNextLine()) {
+ String linha = leitorDeLinhas.nextLine();
+ String[] registro = linha.split(",");
+
+ String categoria = registro[0];
+ String produto = registro[1];
+ BigDecimal preco = new BigDecimal(registro[2]);
+ int quantidade = Integer.parseInt(registro[3]);
+ LocalDate data = LocalDate.parse(registro[4], DateTimeFormatter.ofPattern("dd/MM/yyyy"));
+ String cliente = registro[5];
+
+ Pedido pedido = new Pedido(categoria, produto, cliente, preco, quantidade, data);
+ pedidos[quantidadeDeRegistros] = pedido;
+
+ quantidadeDeRegistros++;
+ if (pedidos[pedidos.length - 1] != null) {
+ pedidos = Arrays.copyOf(pedidos, pedidos.length * 2);
+ }
+ }
+
+ return pedidos;
+ } catch (URISyntaxException e) {
+ throw new RuntimeException(String.format("Arquivo {} não localizado!", nomeDoArquivo));
+ } catch (IOException e) {
+ throw new RuntimeException("Erro ao abrir Scanner para processar arquivo!");
+ }
+ }
+}
\ No newline at end of file
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/cliente/Cliente.java b/comex-main_S6/src/main/java/br/com/alura/comex/cliente/Cliente.java
new file mode 100644
index 00000000..310c4d00
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/cliente/Cliente.java
@@ -0,0 +1,40 @@
+package br.com.alura.comex.cliente;
+
+import br.com.alura.comex.endereco.Endereco;
+
+public class Cliente {
+ // Variáveis de instância privadas para encapsular os dados do cliente
+ private String nome;
+ private String cpf;
+ private String email;
+ private String profissao;
+ private String telefone;
+ private Endereco endereco;
+
+ // Construtor para inicializar um objeto Cliente com os valores passados como parâmetros
+ public Cliente(String nome, String cpf, String email, String profissao, String telefone, Endereco endereco) {
+ this.nome = nome;
+ this.cpf = cpf;
+ this.email = email;
+ this.profissao = profissao;
+ this.telefone = telefone;
+ this.endereco = endereco;
+ }
+
+ // Métodos getters para acesso aos dados do cliente
+ public String getNome() { return nome; }
+ public String getCpf() { return cpf; }
+ public String getEmail() { return email; }
+ public String getProfissao() { return profissao; }
+ public String getTelefone() { return telefone; }
+ public Endereco getEndereco() { return endereco; }
+
+ // Sobrescrita do método toString para fornecer uma representação em string do objeto Cliente
+ @Override
+ public String toString() {
+ return "Cliente: " + nome + "\nCPF: " + cpf + "\nE-mail: " + email +
+ "\nProfissão: " + profissao + "\nTelefone: " + telefone +
+ "\nEndereço: " + endereco.toString();
+ }
+}
+
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/endereco/ConsultaCep.java b/comex-main_S6/src/main/java/br/com/alura/comex/endereco/ConsultaCep.java
new file mode 100644
index 00000000..25006f5d
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/endereco/ConsultaCep.java
@@ -0,0 +1,37 @@
+package br.com.alura.comex.endereco;
+
+import java.net.URI;
+import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
+import java.net.http.HttpResponse;
+import java.net.http.HttpClient.Version;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class ConsultaCep {
+
+ private static final String BASE_URL = "https://viacep.com.br/ws/";
+
+ public Endereco consultaCep(String cep) {
+ try {
+ HttpClient client = HttpClient.newBuilder()
+ .version(Version.HTTP_2)
+ .build();
+ HttpRequest request = HttpRequest.newBuilder()
+ .uri(URI.create(BASE_URL + cep + "/json/"))
+ .GET()
+ .build();
+ HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
+
+ if (response.statusCode() == 200) {
+ ObjectMapper mapper = new ObjectMapper();
+ return mapper.readValue(response.body(), Endereco.class);
+ } else {
+ System.err.println("Erro na consulta do CEP: " + response.statusCode());
+ return null;
+ }
+ } catch (Exception e) {
+ System.err.println("Erro ao consultar CEP: " + e.getMessage());
+ return null;
+ }
+ }
+}
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/endereco/Endereco.java b/comex-main_S6/src/main/java/br/com/alura/comex/endereco/Endereco.java
new file mode 100644
index 00000000..12997fb2
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/endereco/Endereco.java
@@ -0,0 +1,83 @@
+package br.com.alura.comex.endereco;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(ignoreUnknown = true) // Ignora campos não mapeados no JSON
+public class Endereco {
+ private String cep;
+ private String logradouro;
+ private String complemento;
+ private String bairro;
+ private String localidade;
+ private String uf;
+ private String ibge; // Campo adicionado
+ private String gia; // Campo adicionado
+ private String ddd; // Campo adicionado
+ private String siafi; // Campo adicionado
+ private String numero;
+
+ // Construtor vazio necessário para a deserialização quando não são utilizadas anotações nos parâmetros do construtor
+ public Endereco() {
+ }
+
+ // Construtor com anotações JsonProperty para mapeamento direto de JSON para os parâmetros do construtor
+ @JsonCreator
+ public Endereco(@JsonProperty("cep") String cep,
+ @JsonProperty("logradouro") String logradouro,
+ @JsonProperty("complemento") String complemento,
+ @JsonProperty("bairro") String bairro,
+ @JsonProperty("localidade") String localidade,
+ @JsonProperty("uf") String uf) {
+ this.cep = cep;
+ this.logradouro = logradouro;
+ this.complemento = complemento;
+ this.bairro = bairro;
+ this.localidade = localidade;
+ this.uf = uf;
+ }
+
+ // Getters e setters para cada campo
+ public String getCep() { return cep; }
+ public void setCep(String cep) { this.cep = cep; }
+
+ public String getLogradouro() { return logradouro; }
+ public void setLogradouro(String logradouro) { this.logradouro = logradouro; }
+
+ public String getNumero() { return numero; }
+ public void setNumero(String numero) { this.numero = numero; }
+
+ public String getComplemento() { return complemento; }
+ public void setComplemento(String complemento) { this.complemento = complemento; }
+
+ public String getBairro() { return bairro; }
+ public void setBairro(String bairro) { this.bairro = bairro; }
+
+ public String getLocalidade() { return localidade; }
+ public void setLocalidade(String localidade) { this.localidade = localidade; }
+
+ public String getUf() { return uf; }
+ public void setUf(String uf) { this.uf = uf; }
+
+ // Representação do objeto em String para fácil visualização
+ @Override
+ public String toString() {
+ return "Endereco{" +
+ "cep='" + cep + '\'' +
+ ", logradouro='" + logradouro + '\'' +
+ ", numero='" + numero + '\'' +
+ ", complemento='" + complemento + '\'' +
+ ", bairro='" + bairro + '\'' +
+ ", localidade='" + localidade + '\'' +
+ ", uf='" + uf + '\'' +
+ '}';
+ }
+
+ // Exemplo de configuração do ObjectMapper para ser usado ao deserializar
+// public static void configureObjectMapper() {
+// ObjectMapper mapper = new ObjectMapper();
+// mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ }
+
+
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/pedido/OrdenacaoPedido.java b/comex-main_S6/src/main/java/br/com/alura/comex/pedido/OrdenacaoPedido.java
new file mode 100644
index 00000000..b8c945e9
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/pedido/OrdenacaoPedido.java
@@ -0,0 +1,37 @@
+package br.com.alura.comex.pedido;
+
+
+import br.com.alura.comex.cliente.Cliente;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+public class OrdenacaoPedido {
+ public static void main(String... args){
+ // Criação de pedidos simulada, substitua isto pelo código de criação dos pedidos
+ List pedidos = new ArrayList<>();
+ pedidos.add(new Pedido(101, new Cliente("João Silva", "123.456.789-00", "joao@gmail.com", "Engenheiro", "9988776655", null), new BigDecimal("1200.00"), 2));
+ pedidos.add(new Pedido(102, new Cliente("Maria Fernanda", "987.654.321-00", "maria@gmail.com", "Advogada", "9966554433", null), new BigDecimal("300.00"), 1));
+ pedidos.add(new Pedido(103, new Cliente("Carlos Eduardo", "321.654.987-00", "carlos@gmail.com", "Médico", "9944221100", null), new BigDecimal("450.00"), 3));
+ pedidos.add(new Pedido(104, new Cliente("Ana Paula", "321.654.987-00", "ana@gmail.com", "Designer", "9944221100", null), new BigDecimal("850.00"), 1));
+ pedidos.add(new Pedido(105, new Cliente("Paulo Henrique", "321.654.987-00", "paulo@gmail.com", "Fotógrafo", "9944221100", null), new BigDecimal("1250.00"), 2));
+
+ // Ordenando por maior valor total
+ Collections.sort(pedidos, Comparator.comparing(Pedido::getValorTotal).reversed());
+ System.out.println("\nPedidos ordenados por maior valor total:");
+ for (Pedido pedido : pedidos) {
+ System.out.println("Pedido ID: " + pedido.getId() + ", Valor Total: " + pedido.getValorTotal());
+ }
+
+ // Ordenando por menor valor total
+ Collections.sort(pedidos, Comparator.comparing(Pedido::getValorTotal));
+ System.out.println("\nPedidos ordenados por menor valor total:");
+ for (Pedido pedido : pedidos) {
+ System.out.println("Pedido ID: " + pedido.getId() + ", Valor Total: " + pedido.getValorTotal());
+ }
+ }
+}
+
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/pedido/Pedido.java b/comex-main_S6/src/main/java/br/com/alura/comex/pedido/Pedido.java
new file mode 100644
index 00000000..92348657
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/pedido/Pedido.java
@@ -0,0 +1,147 @@
+package br.com.alura.comex.pedido;
+
+//import java.math.BigDecimal;
+//import java.time.LocalDate;
+//
+//public class Pedido {
+//
+// private String categoria;
+// private String produto;
+// private String cliente;
+//
+// private BigDecimal preco;
+// private int quantidade;
+//
+// private LocalDate data;
+//
+// public Pedido(String categoria, String produto, String cliente, BigDecimal preco, int quantidade, LocalDate data) {
+// this.categoria = categoria;
+// this.produto = produto;
+// this.cliente = cliente;
+// this.preco = preco;
+// this.quantidade = quantidade;
+// this.data = data;
+// }
+//
+// public String getCategoria() {
+// return categoria;
+// }
+//
+// public String getProduto() {
+// return produto;
+// }
+//
+// public String getCliente() {
+// return cliente;
+// }
+//
+// public BigDecimal getPreco() {
+// return preco;
+// }
+//
+// public int getQuantidade() {
+// return quantidade;
+// }
+//
+// public LocalDate getData() {
+// return data;
+// }
+//
+// @Override
+// public String toString() {
+// return "Pedido{" +
+// "categoria='" + categoria + '\'' +
+// ", produto='" + produto + '\'' +
+// ", cliente='" + cliente + '\'' +
+// ", preco=" + preco +
+// ", quantidade=" + quantidade +
+// ", data=" + data +
+// '}';
+// }
+//
+//}
+
+import br.com.alura.comex.cliente.Cliente;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+public class Pedido {
+ // Atributos privados
+ private int id;
+ private Cliente cliente;
+ private BigDecimal preco;
+ private int quantidade;
+
+ // Construtor
+ public Pedido(int id, Cliente cliente, BigDecimal preco, int quantidade) {
+ this.id = id;
+ this.cliente = cliente;
+ this.preco = preco;
+ this.quantidade = quantidade;
+ }
+
+ public Pedido(String categoria, String produto, String cliente, BigDecimal preco, int quantidade, LocalDate data) {
+ }
+
+ // Getters e Setters
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public Cliente getCliente() {
+ return cliente;
+ }
+
+ public void setCliente(Cliente cliente) {
+ this.cliente = cliente;
+ }
+
+ public BigDecimal getPreco() {
+ return preco;
+ }
+
+ public void setPreco(BigDecimal preco) {
+ this.preco = preco;
+ }
+
+ public int getQuantidade() {
+ return quantidade;
+ }
+
+ public void setQuantidade(int quantidade) {
+ this.quantidade = quantidade;
+ }
+
+ // Método para calcular o valor total do pedido
+ public BigDecimal getValorTotal() {
+ return preco.multiply(new BigDecimal(quantidade));
+ }
+
+ // Método para comparar se este pedido é mais barato que outro
+ public boolean isMaisBaratoQue(Pedido outroPedido) {
+ return this.getValorTotal().compareTo(outroPedido.getValorTotal()) < 0;
+ }
+
+ // Método para comparar se este pedido é mais caro que outro
+ public boolean isMaisCaroQue(Pedido outroPedido) {
+ return this.getValorTotal().compareTo(outroPedido.getValorTotal()) > 0;
+ }
+
+ // Método toString para exibir informações do pedido incluindo valor total
+ @Override
+ public String toString() {
+ return "Pedido{" +
+ "id=" + id +
+ ", cliente=" + cliente.getNome() +
+ ", preço=" + preco +
+ ", quantidade=" + quantidade +
+ ", valor total=" + getValorTotal() +
+ '}';
+ }
+}
+
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/produto/ComparaProduto.java b/comex-main_S6/src/main/java/br/com/alura/comex/produto/ComparaProduto.java
new file mode 100644
index 00000000..30bd30e8
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/produto/ComparaProduto.java
@@ -0,0 +1,23 @@
+import br.com.alura.comex.cliente.Cliente;
+import br.com.alura.comex.pedido.Pedido;
+
+import java.math.BigDecimal;
+
+// Classe TestePedido
+public class ComparaProduto {
+ public static void main(String[] args) {
+ Cliente cliente = new Cliente("João Silva", "123.456.789-00", "joao.silva@gmail.com", "Engenheiro", "51 99876-5432", null);
+ Pedido pedido1 = new Pedido(101, cliente, new BigDecimal("150.00"), 2);
+ Pedido pedido2 = new Pedido(102, cliente, new BigDecimal("200.00"), 1);
+
+ System.out.println(pedido1);
+ System.out.println(pedido2);
+
+ // Usando operador ternário para converter boolean para "Sim" ou "Não"
+ String maisCaro = pedido1.isMaisCaroQue(pedido2) ? "Sim" : "Não";
+ String maisBarato = pedido1.isMaisBaratoQue(pedido2) ? "Sim" : "Não";
+
+ System.out.println("Pedido 1 é mais caro que Pedido 2? " + maisCaro);
+ System.out.println("Pedido 1 é mais barato que Pedido 2? " + maisBarato);
+ }
+}
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/produto/Produto.java b/comex-main_S6/src/main/java/br/com/alura/comex/produto/Produto.java
new file mode 100644
index 00000000..4ce2ac65
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/produto/Produto.java
@@ -0,0 +1,77 @@
+package br.com.alura.comex.produto;
+
+import java.util.Objects;
+
+public class Produto {
+ private final String nome;
+ private final String descricao;
+ private final double precoUnitario;
+ private final int quantidade;
+
+ // Construtor que valida a obrigatoriedade do nome
+ public Produto(String nome, String descricao, double precoUnitario, int quantidade) {
+ if (nome == null || nome.trim().isEmpty()) {
+ throw new IllegalArgumentException("O nome do produto é obrigatório e não pode ser vazio.");
+ }
+ this.nome = nome;
+ this.descricao = descricao;
+ this.precoUnitario = precoUnitario;
+ this.quantidade = quantidade;
+ }
+
+ // Getters
+ public String getNome() {
+ return nome;
+ }
+
+ public String getDescricao() {
+ return descricao;
+ }
+
+ public double getPrecoUnitario() {
+ return precoUnitario;
+ }
+
+ public int getQuantidade() {
+ return quantidade;
+ }
+
+ // Método toString
+ @Override
+ public String toString() {
+ return "Produto{" +
+ "nome='" + nome + '\'' +
+ ", descricao='" + descricao + '\'' +
+ ", preço unitário=" + precoUnitario +
+ ", quantidade=" + quantidade +
+ '}';
+ }
+
+ // Método equals
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) return true;
+ if (obj == null || getClass() != obj.getClass()) return false;
+ Produto produto = (Produto) obj;
+ return Double.compare(produto.precoUnitario, precoUnitario) == 0 &&
+ quantidade == produto.quantidade &&
+ nome.equals(produto.nome) &&
+ descricao.equals(produto.descricao);
+ }
+
+ // Método hashCode
+ @Override
+ public int hashCode() {
+ return Objects.hash(nome, descricao, precoUnitario, quantidade);
+ }
+
+ // Método para imprimir os detalhes do produto
+ public void imprimirDetalhes() {
+ System.out.println(">> Dados do produto");
+ System.out.println(":: Nome: " + nome);
+ System.out.println(":: Descrição: " + descricao);
+ // Adicionalmente, você pode imprimir preço e quantidade se necessário
+ System.out.println(":: Preço Unitário: " + precoUnitario);
+ System.out.println(":: Quantidade: " + quantidade);
+ }
+}
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/testes/ImpressaoDadosProduto.java b/comex-main_S6/src/main/java/br/com/alura/comex/testes/ImpressaoDadosProduto.java
new file mode 100644
index 00000000..70843817
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/testes/ImpressaoDadosProduto.java
@@ -0,0 +1,13 @@
+package br.com.alura.comex.testes;
+
+import br.com.alura.comex.produto.Produto;
+
+public class ImpressaoDadosProduto {
+ public static void main(String[] args) {
+ // Criação e inicialização do produto
+ Produto produto = new Produto("Livro", "Conjunto de folhas impressas.", 19.99, 100);
+
+ // Invocação do método de impressão dos detalhes do produto
+ produto.imprimirDetalhes();
+ }
+}
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteCep.java b/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteCep.java
new file mode 100644
index 00000000..afd95932
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteCep.java
@@ -0,0 +1,15 @@
+package br.com.alura.comex.testes;
+
+import br.com.alura.comex.endereco.ConsultaCep;
+import br.com.alura.comex.endereco.Endereco;
+
+public class TesteCep {
+ public static void main(String[] args) {
+ ConsultaCep service = new ConsultaCep();
+ Endereco endereco = service.consultaCep("12237600");
+ if (endereco != null) {
+ System.out.println(endereco);
+ }
+ }
+}
+
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteClassePedido.java b/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteClassePedido.java
new file mode 100644
index 00000000..63ab051d
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteClassePedido.java
@@ -0,0 +1,38 @@
+package br.com.alura.comex.testes;
+
+import br.com.alura.comex.cliente.Cliente;
+import br.com.alura.comex.pedido.Pedido;
+import br.com.alura.comex.produto.Produto;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+public class TesteClassePedido {
+ public static void main(String[] args) {
+ // Criando clientes
+ Cliente cliente1 = new Cliente("João Silva", "123.456.789-00", "joao.silva@gmail.com", "Engenheiro", "51 99876-5432", null);
+ Cliente cliente2 = new Cliente("Maria Oliveira", "987.654.321-00", "maria.oliveira@gmail.com", "Médica", "21 98765-4321", null);
+
+ // Criando produtos (simplificado, apenas o nome para exemplificar)
+ Produto produto1 = new Produto("Notebook", "Notebook Dell", 3500.00, 10);
+ Produto produto2 = new Produto("Smartphone", "iPhone 13", 5000.00, 5);
+ Produto produto3 = new Produto("Impressora", "Impressora HP", 800.00, 15);
+
+ // Criando pedidos
+ List pedidos = new ArrayList<>();
+ pedidos.add(new Pedido(101, cliente1, new BigDecimal("3500.00"), 1));
+ pedidos.add(new Pedido(102, cliente1, new BigDecimal("7000.00"), 2)); // 2 notebooks
+ pedidos.add(new Pedido(103, cliente2, new BigDecimal("5000.00"), 1));
+ pedidos.add(new Pedido(104, cliente2, new BigDecimal("1600.00"), 2)); // 2 impressoras
+ pedidos.add(new Pedido(105, cliente1, new BigDecimal("800.00"), 1));
+
+ // Exibindo informações dos pedidos
+ for (Pedido pedido : pedidos) {
+ System.out.println("Produto: " + pedido.getCliente().getNome() + ", Cliente: " + pedido.getCliente().getNome() +
+ ", Preço: " + pedido.getPreco() + ", Valor Total: " + pedido.getValorTotal());
+ }
+ }
+}
+
+
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteCliente.java b/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteCliente.java
new file mode 100644
index 00000000..5d943e78
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteCliente.java
@@ -0,0 +1,106 @@
+package br.com.alura.comex.testes;
+
+import br.com.alura.comex.cliente.Cliente;
+import br.com.alura.comex.endereco.Endereco;
+import br.com.alura.comex.endereco.ConsultaCep;
+import java.util.Scanner;
+
+public class TesteCliente {
+
+ public static void main(String[] args) {
+ Scanner scanner = new Scanner(System.in);
+ ConsultaCep cepService = new ConsultaCep(); // Supondo que essa classe esteja corretamente implementada
+
+ System.out.println("Digite 'sair' a qualquer momento para terminar o programa.");
+
+ // Solicita o CEP do usuário
+ System.out.println("Por favor, insira o CEP para consulta:");
+ String cep = scanner.nextLine();
+ if ("sair".equalsIgnoreCase(cep)) {
+ System.out.println("Programa encerrado.");
+ scanner.close();
+ return;
+ }
+
+ // Consulta o CEP usando o serviço ViaCep
+ Endereco endereco = cepService.consultaCep(cep);
+ if (endereco == null) {
+ System.out.println("Não foi possível encontrar o endereço para o CEP fornecido.");
+ scanner.close();
+ return;
+ }
+
+ System.out.println("Endereço encontrado:");
+ System.out.println("Logradouro: " + endereco.getLogradouro());
+
+ // Solicitar número do endereço
+ System.out.println("Por favor, insira o número do endereço:");
+ String numero = scanner.nextLine();
+ if ("sair".equalsIgnoreCase(numero)) {
+ System.out.println("Programa encerrado.");
+ scanner.close();
+ return;
+ }
+ endereco.setNumero(numero);
+
+ // Solicitar complemento do endereço
+ System.out.println("Por favor, insira o complemento do endereço (se houver):");
+ String complemento = scanner.nextLine();
+ if ("sair".equalsIgnoreCase(complemento)) {
+ System.out.println("Programa encerrado.");
+ scanner.close();
+ return;
+ }
+ endereco.setComplemento(complemento);
+
+ // Solicitação dos dados do Cliente
+ System.out.println("Por favor, insira o nome do cliente:");
+ String nomeCliente = scanner.nextLine();
+ if ("sair".equalsIgnoreCase(nomeCliente)) {
+ System.out.println("Programa encerrado.");
+ scanner.close();
+ return;
+ }
+
+ System.out.println("Por favor, insira o CPF do cliente:");
+ String cpf = scanner.nextLine();
+ if ("sair".equalsIgnoreCase(cpf)) {
+ System.out.println("Programa encerrado.");
+ scanner.close();
+ return;
+ }
+
+ System.out.println("Por favor, insira o email do cliente:");
+ String email = scanner.nextLine();
+ if ("sair".equalsIgnoreCase(email)) {
+ System.out.println("Programa encerrado.");
+ scanner.close();
+ return;
+ }
+
+ System.out.println("Por favor, insira a profissão do cliente:");
+ String profissao = scanner.nextLine();
+ if ("sair".equalsIgnoreCase(profissao)) {
+ System.out.println("Programa encerrado.");
+ scanner.close();
+ return;
+ }
+
+ System.out.println("Por favor, insira o telefone do cliente:");
+ String telefone = scanner.nextLine();
+ if ("sair".equalsIgnoreCase(telefone)) {
+ System.out.println("Programa encerrado.");
+ scanner.close();
+ return;
+ }
+
+ // Criação de um objeto Cliente usando o objeto Endereco criado e os dados coletados
+ Cliente cliente = new Cliente(nomeCliente, cpf, email, profissao, telefone, endereco);
+
+ // Impressão das informações do Cliente e do Endereço completo no console
+ System.out.println("Informações completas do Cliente e Endereço:");
+ System.out.println(cliente);
+
+ scanner.close();
+ }
+}
diff --git a/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteProduto.java b/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteProduto.java
new file mode 100644
index 00000000..8c49115a
--- /dev/null
+++ b/comex-main_S6/src/main/java/br/com/alura/comex/testes/TesteProduto.java
@@ -0,0 +1,37 @@
+package br.com.alura.comex.testes;
+
+import br.com.alura.comex.produto.Produto;
+import java.util.Scanner;
+
+public class TesteProduto {
+ public static void main(String[] args) {
+ Scanner scanner = new Scanner(System.in);
+
+ System.out.println("Por favor, insira o nome do produto:");
+ String nome = scanner.nextLine().trim();
+
+ // Verificar se o nome é válido (não vazio e não nulo)
+ while (nome.isEmpty()) {
+ System.out.println("O nome do produto é obrigatório e não pode ser vazio. Por favor, insira o nome do produto:");
+ nome = scanner.nextLine().trim();
+ }
+
+ System.out.println("Por favor, insira a descrição do produto:");
+ String descricao = scanner.nextLine().trim();
+
+ System.out.println("Por favor, insira o preço unitário do produto:");
+ double precoUnitario = scanner.nextDouble();
+
+ System.out.println("Por favor, insira a quantidade do produto:");
+ int quantidade = scanner.nextInt();
+
+ // Criação do objeto Produto com dados fornecidos pelo usuário
+ Produto produto = new Produto(nome, descricao, precoUnitario, quantidade);
+
+ // Impressão das informações do produto
+ System.out.println("Informações do Produto:");
+ System.out.println(produto);
+
+ scanner.close(); // Fechar o scanner após o uso
+ }
+}
diff --git a/comex-main_S6/src/main/resources/pedidos.csv b/comex-main_S6/src/main/resources/pedidos.csv
new file mode 100644
index 00000000..21e55498
--- /dev/null
+++ b/comex-main_S6/src/main/resources/pedidos.csv
@@ -0,0 +1,17 @@
+CATEGORIA,PRODUTO,PRECO,QUANTIDADE,DATA,CLIENTE
+INFORMÁTICA,Notebook Samsung,3523.00,1,01/01/2022,ANA
+MÓVEIS,Sofá 3 lugares,2500.00,1,05/01/2022,ANA
+LIVROS,Clean Architecture,102.90,2,08/01/2022,ANA
+MÓVEIS,Mesa de jantar 6 lugares,3678.98,1,06/01/2022,ELI
+CELULARES,iPhone 13 Pro,9176.00,6,13/01/2022,ANA
+INFORMÁTICA,"Monitor Dell 27""",1889.00,3,04/01/2022,DANI
+LIVROS,Implementing Domain-Driven Design,144.07,3,10/01/2022,GABI
+AUTOMOTIVA,Jogo de pneus,1276.79,1,15/01/2022,BIA
+LIVROS,Clean Code,95.17,1,09/01/2022,BIA
+CELULARES,Galaxy S22 Ultra,8549.10,5,14/01/2022,DANI
+INFORMÁTICA,Macbook Pro 16,31752.00,1,03/01/2022,CAIO
+LIVROS,Refactoring Improving the Design of Existing Code,173.90,1,12/01/2022,DANI
+MÓVEIS,Cama queen size,3100.00,2,07/01/2022,DANI
+AUTOMOTIVA,Central multimidia,711.18,1,16/01/2022,CAIO
+LIVROS,Building Microservices,300.28,2,11/01/2022,CAIO
+INFORMÁTICA,Galaxy Tab S8,5939.10,4,02/01/2022,BIA
\ No newline at end of file
diff --git a/comex-main_S6/src/test/resources/pedidos.csv b/comex-main_S6/src/test/resources/pedidos.csv
new file mode 100644
index 00000000..21e55498
--- /dev/null
+++ b/comex-main_S6/src/test/resources/pedidos.csv
@@ -0,0 +1,17 @@
+CATEGORIA,PRODUTO,PRECO,QUANTIDADE,DATA,CLIENTE
+INFORMÁTICA,Notebook Samsung,3523.00,1,01/01/2022,ANA
+MÓVEIS,Sofá 3 lugares,2500.00,1,05/01/2022,ANA
+LIVROS,Clean Architecture,102.90,2,08/01/2022,ANA
+MÓVEIS,Mesa de jantar 6 lugares,3678.98,1,06/01/2022,ELI
+CELULARES,iPhone 13 Pro,9176.00,6,13/01/2022,ANA
+INFORMÁTICA,"Monitor Dell 27""",1889.00,3,04/01/2022,DANI
+LIVROS,Implementing Domain-Driven Design,144.07,3,10/01/2022,GABI
+AUTOMOTIVA,Jogo de pneus,1276.79,1,15/01/2022,BIA
+LIVROS,Clean Code,95.17,1,09/01/2022,BIA
+CELULARES,Galaxy S22 Ultra,8549.10,5,14/01/2022,DANI
+INFORMÁTICA,Macbook Pro 16,31752.00,1,03/01/2022,CAIO
+LIVROS,Refactoring Improving the Design of Existing Code,173.90,1,12/01/2022,DANI
+MÓVEIS,Cama queen size,3100.00,2,07/01/2022,DANI
+AUTOMOTIVA,Central multimidia,711.18,1,16/01/2022,CAIO
+LIVROS,Building Microservices,300.28,2,11/01/2022,CAIO
+INFORMÁTICA,Galaxy Tab S8,5939.10,4,02/01/2022,BIA
\ No newline at end of file
diff --git a/comex-main_S6/target/classes/ComparaProduto.class b/comex-main_S6/target/classes/ComparaProduto.class
new file mode 100644
index 0000000000000000000000000000000000000000..ab4dd7c6d869917410caf14a7721b184457c8dc3
GIT binary patch
literal 2102
zcmb_d-BS}+6#rdF*d>GyH-J*DjTSXQ$R^?2pePY4HXt@MirUtj5Fgun>tR<&8C$=#;0a7_v74i&ON{1Ip^+Q?~eWia2tCebfH^8
zAdDb-7>0KFKG#idRrE*2T~YEFdX@~!@a`~l$KnMAD#O*HqnGTO&dr9y2wGRhGo$Y?N(%t2rqclaM9JHSSgQ6{B)rl#CiTRa_*lQ?toL
zG8w`Jd@QkDW*F&!EnWy=6j7;hg<(0ip6hV$sf@G;IdyAhJzh}pDczh-%A0#}4c8Ui
z2qT7gTRG$pTu;=f3hV|I#fVR@LAZ!*k2n{+mI>h|CKXJDk$}z+Y2s|xVNmMQ!n967
z^UIBhl+aRPq%ln?H{1r9j@ja2XtrGX17+#fDuE#CUWw_oc4`+)^QgBz|zpQ~_
zNkNv%K5N(Nbla9=mm8ime_36io)6EMUy02&MtAYz#T*GTf%@>H7J0g
zT)UeL`JsLx9!F!(&ju1N&^dQ1WEtsjOnGP(2*Y?MQcstUOkA^sQ}h6IGHB1jf9h!l
zmBMW1Py#&DsMP54+)oFkJn!++-UhEX(JOe;UWLu(CX>9~a7tp$kgP@8iAl&S$ZEy5
zJ=b%1eM5LvyX+43;6(^u;cEro$aKFXF^BSHK!CdA4)F@bk&sw-kM+
z54cq}g*%?J?Y&0*!;emz;r2mYbWlH;see1-1Z6E3S#Fwn!xI@5MQRHFX^EzyZ-0wQ
zDx)Rpm*}?*5pA8Mm!nKYnc>D6)nc;?PAfBn*DXspS(Cf2a1~VOnloH=qCkPcaQVZk
z^xF7*;R;sh`y+o{)GhP{qVYcMbeb8>!HGk#-etm7d`
z$e2w)B~9R`V<}Vey;!^MspKLURuYBQE5(Y@P
z`3J@)-(Z5KDVio}Nd5vpKW9XwA?5Bta@Hx)m1vJz!jPEgmAL+G{81MKv=sZWe2pZVHCZUYsB_3gmNV`pE
zk7?CS_LKMmc?8JIMQqb5h%d?N5(4k=RDq&kl>YY=6#m8ljdDeHPf4c>J9tL(0Ii;r
Sf8HER5F`uH{uQdn?ZMhASNa
literal 0
HcmV?d00001
diff --git a/comex-main_S6/target/classes/br/com/alura/comex/ProcessadorDeCsv.class b/comex-main_S6/target/classes/br/com/alura/comex/ProcessadorDeCsv.class
new file mode 100644
index 0000000000000000000000000000000000000000..3c6c667eaf126658a36e2c2b2fbf430a095627b3
GIT binary patch
literal 2819
zcma)8YjYD-7=BKh^rY#wKxu*HA}JJUp=BZ56D~pv8chKkC>FeJH`{h0*-bZ_+Jblk
z?=w2%H=Xg5&iDmK(HYv20iAKi5x??toDrYhq-|P)lFRNn?>XnaJnwVfbN>40mwNyX
zh@ep-s-OvqK>Nb<
zzMNhxrX4+Nx&kZ4OfNHC^vwLAS#(OSVG3;ON-xaLc&=rSCA-Ta+w`<^gXv@xEm$V8
zT)_&o3Mj$+%Ai2lbIuK>=wsKSWvOHn+R!esO2KNZ5oj$hvm9;I%9+|3-5VFEb4CR^
zD=w5(rsmC8Pfbd!WdMPWl4s?#jG^1M=|-Vqy^qocfz@+*7A^GAQL#}$3>^Xy+nn;!
zmd(i9<{S=it%NSISs*szYKD{7^jyi+{gyeU70j%ab+j|V%h$L?!PD3(&@`?WPt7Z3
zHZDZaEg*WL*p42FUIja#Ey`ip7NIK^au##BwN?%;KAIPaU35FZAW!(Tq=?AOvp5cXle!~q2dk(fg=h&*L`=9o{9NI`dtCcBT(k&57uKs1}x1_rcg
zexf*nqY}?3IELe-Qs9|q~&o|QOj576X+5!h^d0GzpKedpN
z{Wu|UQo*x$PGIGN;k0AuIo~YN4Z;z~R9opA*WHXcQ8I1AOg@RJ3aJBs=9SZdO?ckN
z`vn2BT7QK`kLK=ik|l{urmCD;u;-I_0H-8QD>#D}=hzhNgk!F&PZwDc45u)Cn)|7{
ztC~CIf{{#h*APl%1U6qx{~zDE`_2ih3t+D7(#*8&=~E}B471=_jxBLsU~MoVAk|>W
z_92@ek6@Szj=2*hYto5by%w{7|Hg^s{A^iQ^sLk2@0N=SUdAhoq)Z=ygEgS75k@6P
z)%!S#A?%iTeU2O~38~Xn-i!$Jo^V|!rt>%AT5haTP-0|_9xJ$xVHS(J8`H}!cSvLj
zRSlrdRHkMfx8Lk5P6~wjoGkgb%r7&iO8F7fJ*$u8C}|B6I;6Xn->(Qm-nhl=ZK;)n
zrMi>UI_FviOM(40Kw`3MxVor@QCB!;+2gwJ*Fxed1ZFjG%`vO!xeg($#(aK4qrq)9
z<}ermNw2ack8{HX*EINERo1zb-mD)JC7s;J@K;|J*Cakw8#&8li6Sk^
z{JRxmuur#}oV!x*1Rc>=~^
zvDb)8xJ(Hb*PY+7=EcWheQl*TyCTDSY
z7JUgtm63R&`3^P>s}Z$PZC0c0O{y}3RH8)#F+twA$9K8y5k
z7)*q|dw5k1{g}Rkq2bn-LU&O&T)!_5n3=X!B!*f
z48f&^D6I{^Ly1?yJdR=#Z!nETp8iwpH`9J6rg4Q=yD+}TRlLcBw%}V_!&{7d4ZgzL
zc!%+J;xoL93_^_TQ@lrgVfxpO>$t%c_i5)k-Vf;U03T2@@FD*@5Prx74HDZWS|r*e
dREa?{>Tlerd+0NeL;mCJIZ00i{qcGE@xKj>@`V5Z
literal 0
HcmV?d00001
diff --git a/comex-main_S6/target/classes/br/com/alura/comex/cliente/Cliente.class b/comex-main_S6/target/classes/br/com/alura/comex/cliente/Cliente.class
new file mode 100644
index 0000000000000000000000000000000000000000..0057368509c094446af8132f56c10ce860291bb8
GIT binary patch
literal 2047
zcmcIlOHb5L6#g#r=r9%-0nriVCE!rS`hGAz86leBBZ1(;)umjZQhFzCF}gGHPq=rX
zOHCY2T)1)Pk20RqmViTJ*qG+_JbJ!!&pqed(_g>8{{V0cb7gcOXCQB)fTBR53%bh5p(?Hq8A(#SVD}n9kEn9lqfn-j-vK`M=ex&S1
zLIv_Z=>>Whc6~2Kf$Oi=*;}`X9(I*;nrkc{Hqpy+L2XIbV@0^-ee
zauk97+SL97_EM6^O-x`?;OLgzR1NJrGJ57l8^nc?^rKMVO>IB&|7kM96nOhTLpVq-
z>r>0rDGj|!ozk=5`s(ra)`|+2~By0w%FfciKzf5Q$4^UnSB`qX^Wf&<8q^KzUJb2acL|`3z=yAUha
z%!nvAp3XCwo93)Dm*)KEd(F~L%43`OX8!!ZA1HYbeP0C)Pllli4crr$*q58EBO7Q4
z4E@`bMqH8~y80y=hd`0uG~bBp;NcWg8cH#xQ4~`eJ~5?vL$m~%SU64Z8c81sXAqsV
zzCl=LS}?4$Ep%DaEmW*(zJ)%kT4-Uwsuo+QevbW2(R+;ifOgEIf=(PpH;uwRdaCHh
zFb%;848S6b2Z?u_!C8`MpEz0(a~v<9VUouvaxup-=VOkeF2o$iU8H!YY1brbn<)Dz
zSYKd#BBlcz6dQp;;Em11Al+EtTqd}y9eg|!Y-fTi?cl*o@cB$|Upx3jCip@oc%U78
zG823emnaKd=Di84wu6T*THx@c8s_0bxjRsD*S-*F1qb=)17^A!E}
nCNM&ub}KTPRwReZ6jukX;3`pW%4@W4;SNb<;_hM=_fh==`)t9(
literal 0
HcmV?d00001
diff --git a/comex-main_S6/target/classes/br/com/alura/comex/endereco/ConsultaCep.class b/comex-main_S6/target/classes/br/com/alura/comex/endereco/ConsultaCep.class
new file mode 100644
index 0000000000000000000000000000000000000000..4a22050ff1ad2a3cb77e90a77a87401bf23316ba
GIT binary patch
literal 3310
zcmb7HX^iVEdBxDFn$fA1f>efRFtDa
zplVW|*0q#wj%%mmlQQ87R2(u)!#yHU+R{22MhKM(!YbB471-pHo6^-LTsNcja)_l2
zY4Tdwl$X1*Mk*<7f##Oh{*_3Z1FC2x9>6*URVu1cBM@2f!l<+z!!oH_@5spD#r*=?
zR^}cMN7tYhbqY49*oaN5abHqena<1UY58yd_hF!?LW7FU*dkCK_plMzvI;WMFdFfo
zf{2H9lR*8whz!X~S?Lh&9Yy&B$4d~`(COP%G-HRr#J$>2&C>cbF_AWlUtNxwVQGU*C6{VTJsquqz_VT|
zUL-|JU(x*15m%5M@yN)OQ^p?!I_-s9&I_0MCG<
zz}kGt@%<126Q$k@YNu1vrVX8Xw$qdCly}+D7#g`aTi0)x@>Dh*m-dJrPf_8Tek-A;
zMs?fp*1=|(J7JJvYyW+!8x>fSDAc~Q7@Vte%f}g6Riyp!7HI4LAKBntOa#woLy>IG
zJ*}it?0nhZT!btrc%%#2LH_fdDM}b5y?`K&L7XlR6LKk~Cj>SuM|n1rM|$5XoDb#B
ze3pUVkC5ZqVV6~bB_MECc-YF?3E5+K?yM>ZqINIlxz%M^uH)KzWXr5M%;ld
zEMgllkDUwH>us|EUBDv(r}nnZ(6DJfi6^WtfIEn
z>=J7@t|u_H)Ub~I*#qTv?1BaK5gKh<#C+h{gw%C<)7{!<$6
zU|L|JCQnq}GE35ZYq&?GIj%HaN8s1_%b-7|XW{Z;0#Tz_QN(J+kn}B=%K|aSkcS3M
z<*hPJ4Hpbky=v5o%HEU3DtSf=7IAYRZG-K=8Fh~gx@4wsm1oQeSRa**g#&@~n}+Ec
zHFaP(2H}2YnwBeFgC0m=rNF6oC>>YX?`l>3Se8y4%hcuhBK-x~d0R=>vI+k5#b7(q
zmNiA2FGSU^7InwA>dJP{C~WMM(w``fSCpIQM87c~`fPD0m>&S|_&c8136X{Pk@{u5DNB?CX9B-+oFIxOY}pA&K2jvBl%h)G^oR
z#N5(UyDR#(-@Sajqc!>tzbCdfw%*aV8;2}^5zw|xQ`z~dbR6X*uq!ZoiMudL64)2G
z{r^j;3Vixjy5rtO~;x@Wz+E{((Mzb>7u|Cop1*On8pz9Vhl4#V-}wwL*F^?
zKROFjmKKa9tR_=0A6^BS$@yTm;X+dTQZ
z7rosnf5kZ$@qi0~N1-5+-5{1jL9B*@NOpr*=>dZClW+cID2T~!5cfhsJPrpj*$v`;
z4-lN(3}P)5#7H-Y2caNx;UGr3K|JgMg42*eJP8Fc)(zrOD2VlN5M$jSR(pWp3SbaV
zLqVjvK|Brx@l`m8R5ysV9w4~*7{u41Aky6+o`iyU77n7Li}=;C-U9^JJ%iXd2T`DI
z!qqsPr4pr)q%lcjgvJ<+6pi$IYCz~lxY2=dI;g-X@)RqAZ@k{ZJ>)r!%^&bBwrHZC
TjBOgP@jY3Cq`ko&4v_v2YQ|kJ
literal 0
HcmV?d00001
diff --git a/comex-main_S6/target/classes/br/com/alura/comex/pedido/OrdenacaoPedido.class b/comex-main_S6/target/classes/br/com/alura/comex/pedido/OrdenacaoPedido.class
new file mode 100644
index 0000000000000000000000000000000000000000..1df4eddd46f7a20712a1123232cd5182f8d6f8d6
GIT binary patch
literal 3589
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
BccB0P
literal 0
HcmV?d00001
diff --git a/comex-main_S6/target/classes/br/com/alura/comex/produto/Produto.class b/comex-main_S6/target/classes/br/com/alura/comex/produto/Produto.class
new file mode 100644
index 0000000000000000000000000000000000000000..ae1a36927893f45942710a3b165be9af06628ab4
GIT binary patch
literal 2999
zcmai0`BM{T7=AvIu#heaK@hFdMFmMfQmt1(tV%#p5N!}edo9TdE6Hx$Y^X&$k;x0-1J(?04*YKJW9s%b$NQ{Q_VRpM+6^fP$ck
z5NZV)ujmVUJfmB)@rju$M#>eaJ!D#@dsraQ9i0lJ4)qGcDjtJcA)a&{)0!0sa?J{C
z=#Gx9*z#WvNbPkh)}v8CG4sROoO|7~dr?6|VB3nqXeMLK>Y1a?Y$0n{?(nsgk#kMk
zs>23>gA2B|du@Etsd{X}W(AL{*n+K$XvT@B>}*`m6dYadjBD|t%lH}JH8YmM2t?M}
zlh&S4p-EHqX(OL<%#?1++ifbgV~0RP&M{Khs2sZKZVgyy?zymv?-)2no9|lVQ9H;mYX_ccJb?B04IIe^ABK=qINPW|pDp
ziYoYw8;D+%#t*5aCt0T~5PW0evXo7f$L#xIAV+Xi!7(X5B+yjGADdyExxj8lQX8}vKb6LJ5YzSg!b@ZEup9Fd>NU;NMcgKITcfqsLftRmCA%ACrxFn
z2m~%jPD~4QRjGVAV#O|uu;njA5WsU%@A);rmc)X1QA)fdB`OdsN(e-&cq~JzC`YbM
z5z8Sqqrmzx(=tvMvNMJ=se43;jM*tYGsOmw=i+71oika09b^CBfdg!#q^qaq$MsxM
zTOoN*dtIq=mw429tPziADqD_YEkO%>aki}6cuP*yxwfB!Eal9V$|f)Jz^jEfg(xri
z;^*0DW?7=F=_CwS&&(N2CY-bjPRbZDWqYW_`OzoK%fOD=wwreyJvVN+b9Oqvz82TQ
zxQ-hNZptdWLNHdiZCVTVyb<^T)u5o^ox6^Yqj5q7(&vqbGDLoiXw|#%z1OkQ-QA
zsj{02#mVbAql$R7u2^egNY7-FrfZP#uL&G0=6zF6&B2{wXRlV8jQ)`$arus|6*v@^
zzu;6H6usKYARH90*5M6;+260p68CGO4sWr2dG-sve21goyMCLk%WD=~8kAGkGw8j0
zmzeY2O3iu8s*GBe;dmp?$Se3jpmPoA)v#3XkwE)@i*oGwz@vjRzJ|j*h=}~oa2Jsu
z32)_R!CUzO;9Af24ngO0hNp*Y+FGuAV)r3>{y;;|B9uim+(yGgG)+gE@1y0{SkFDQ
z#d`0dJr=!(j#x|R9y-6LRsbnJw{Z*uDt$N5>pJ>xWIRpi;;9GC*o_THQ(`au(i03^
z<|=nGQsM1ntTO&R@*_sOawp>rVV3(A)ciwZAqATh)bTGsEt$w1-TH~dxk^)^*iUHt
zj++`Uwp#D9&GRosDNyt;U{+ObU#+~Qs`3@g)0~7bPFIgScYM3bvsP6(gKSB8CG5_-
ztCV+CRkliDA7L`mbF0jmzjppQ`0HFk6j+@{tjt<#2?TyTi=q6^0!rX7#CpC)D0r7_
zSQlHwE;3@*R|o~}_WXuTv$?00|Iv?PfJ$>hMf
JLwt-){{oubv1b4P
literal 0
HcmV?d00001
diff --git a/comex-main_S6/target/classes/br/com/alura/comex/testes/ImpressaoDadosProduto.class b/comex-main_S6/target/classes/br/com/alura/comex/testes/ImpressaoDadosProduto.class
new file mode 100644
index 0000000000000000000000000000000000000000..451ad1942029ad526998eb17bc9fefac7b9143f1
GIT binary patch
literal 724
zcmb7CZA%+L5Pmjq7tgCrqQ=%%8(%&o7F@)S)*=`L;b=>hfcR;XTayiUw_)#2`hWZd
zeo<(lKcIi0zowX)X_{8WSOEv%UpsR2h%D%cbx(bhB
z?O4a-EKYSRkgY2njzrQ@(Zt9k5y@`lX#daT=C^z3!a>basWWui{v(;Q)TnrP@D%Bu
zc6v5y(ZkZT0h?7t%5-Ha!jViIG#U5|#;Hu`^3$A!?utMsIemuGu?{4|OJBwEQx^55
zIT!tqkcO`ZBJ2sHteu0Ubfgl7J^z_?4yaHhRLsz9Up{TF(<8qyLrT3k!_DC2V`tc&
zRre#?C{TcQYK$}E`3eDZjr%<1yO;iu6?#b<7hDZ<@9F
W5Q%lXBVV0rwTPr8vq^RVTmJwR1+nD-
literal 0
HcmV?d00001
diff --git a/comex-main_S6/target/classes/br/com/alura/comex/testes/TesteCep.class b/comex-main_S6/target/classes/br/com/alura/comex/testes/TesteCep.class
new file mode 100644
index 0000000000000000000000000000000000000000..b16fcff6e13902102cc73824ad42648fd47f76d8
GIT binary patch
literal 942
zcmaJ=T~8B16g|@xX1m>5>`GPe0}-Kx${;41xav!zPX$d%ni!v^%cL&uN3$P9{a5+`
zi6%b!;D6G1r=F!LT-ng&PGz`dKXXm---7xUXX6MxqmiN#>`rqedn;iUukS
z#)IwchmRj^5gkX>!X?xgD(-12!;@zBl)IP4UO04G-HVuBoKQMtTt=P4wr~aW=X&UU
zOi~q4=}|_V%ug7+NW3Qalt`2e91~Y@jpMq71uQby<0{VQFz}H+;fDlrw$6!0j@IQS
z!*WiwsiF!Jv8N45!cgi&`--8~^+L6q1p^iD$$?LvdN*>V-mD(YQ&D`_y2LbpIV?FnduJyXvK<1*=X)-P9w)9o(S1te*myzRk4WqMabi$j+=E
zgMA){Z_}#7dR?N`nj{d!GVRK^ixu+d!=Lo;L3Z&Q_?u&tyBl@$2-Z&f2h1;+YagMZ
zA&bzE4PpfhddsN6gpCT_sp^{%r
literal 0
HcmV?d00001
diff --git a/comex-main_S6/target/classes/br/com/alura/comex/testes/TesteClassePedido.class b/comex-main_S6/target/classes/br/com/alura/comex/testes/TesteClassePedido.class
new file mode 100644
index 0000000000000000000000000000000000000000..6a63f974b0dc970e60560ad6932a21d5ca1dcf62
GIT binary patch
literal 3170
zcmb_f>r)d~6#rcw*(HRB3!U#fr1DYkP1b?zAnj{ENphu%|fN`);_eg
z@0a%7+SXb>wVjbsW;&g5`lVmnul*bR+UbYdb9Y057#%+}lk7d`+;h%7@4NZ!pKCt@
z*p16xTzp%kVLjhMSs$Ev;?A_Kwbm#zq;X43*O+
zH-l-x(;ZK8O%IYn8RZP#14djm5~^mIG8BfA*08^`v!lJOp|z#C$qNaU!s@jQr|Jin
z?H;u)&4@?-H%bm?RU@WaYSauJ$N-VRxQun=;1IVo?mw(+b7VF-T}?DHIoQ_P5^Qb?
zJ5Fz8Sf3PpK{La*((!v3q@nAVVp^2M?5D|rycDwnuu>8nX=S$+7uCKAxoBVfB%T5`;5a%`Rrh*a1uFdYkFv(
zW%2nzEp2NqtvM#4lIs)z=v@hr4rC=
z)#A2kF;vwD+@5fPJCLDAiZOvn3CDeS5DzgZ%f>CS&?yO?9#&5ZQ|kkhLgEo09tCG8
zFdTB_lI|6gBT|GYViHszP9VN&w2aQDZ8b^S%vsX8)-_8L#j6=M^{>j45s?7RhiS}E
z0mW52Gguhv=&ZZQhL{gY9}JjeKgkc%n4;2HWoTwph@&3!!9tn>Myw;Ex2Z{&c(YR~
z_-B2X6Z|E_KhAa28Z&LKD^$rReVE4+4C|77M(r_;D7TMlc7mX^%?+DmVmT`AcH=7h
zY?m*an#rsa{r{YL3QtRT#)oG`mAielI>r>3l!&-)NO+!MM~ziBzo)?0jk|xGh<{yK>pTIv9IMU&*M=qccN1<>W}h
zSuxSgSu3jcX(EwTw`4sih6CBQ-!$#CZSmBQYA4KCy3B*my!aenNcd7z|5p@4XO1`p
zsTp(Tj2d$5(rt)79;KNy&v0&KD`Xg5rTyH9>1w)mknXS9)Sa*MRf1y_m>ldYlfE=v
zR}@u7MGx2YQJR?%8DBGmGq-7%pY8N#29N{Ogt&gubU>&1{Z982&fps`4ApXbB`x71
z!?s&Ok;_8~ml!tRnUxCO4F|U1IeKvupFA+Sr9AX}fv^y*jMl>K3t&Gu+o$L$wt-^2
zNKc>3fS2$xVMTZar-?$sc{Pv;2Wwx1G@%qJ#Y%}%rmSHLs2FreRmys0gR)84EJ#C(
z@J}dPmD)xvvw-e`1@v4+UmlKT_D;BagS1zey%*o<$PMR`OSpR@x#Tog=aDSAs~BVGlB%Vv
zIL2@u?E-q3;TLpu$vDR*Tp12Bof!t-+fF<)NLj{1)CuKAm<0?+{c#Xa0$I2`Z$M|G;~A
zpNioFk{4y*Qa&WgIil1e?_zvHr`d{fjTTcK0
literal 0
HcmV?d00001
diff --git a/comex-main_S6/target/classes/br/com/alura/comex/testes/TesteCliente.class b/comex-main_S6/target/classes/br/com/alura/comex/testes/TesteCliente.class
new file mode 100644
index 0000000000000000000000000000000000000000..76cef0c9c9643188e54e3c701b039f585db79c71
GIT binary patch
literal 3524
zcmbVPTWlQF8U9YZ_Ux`FA$Bfgxr8AJ@oq@6gaU2s#FT8D;?y>VHBOyS=<)chJ@M?E
z&CIMxN+}d*f!+Yoszs>k1FBFeRVq|f
zo^$)ofB*mU`>&s0{}X_dcqfl7=(3Qp(TyH~?HA>eEc-H;FF!GRQMs`|&j~N^;$eZV
zVrkk!R-ms1YQ~;luDUV^RG32^y%ua6Td{2emFkr!R&{|bULde*taa1V<CORES}`LttPwEW5g1mVPsoW~MHeRWPSQ3=p2T{|HWkoge=tq~4
zX}68rv4^7TCN)`OKN)&KhkX`z2n?R~=Dk=s1CjK?0Y^HQn$o}2RH0KRmmts#(g*_kPX!3c+3lwz|LYRvE6#gSri2_
zMyWgw;eHE;Z5+YTjV@{l!7XK!jz;GL9jc0qNHbN~^I1GVJtx}+a8%%`FqCterm*m!
zjW3x<>UMn{DdUNUZ9IZ63-oq0poeJjG&_vl%E2RTPY-2rTwr)&4YBC}8q{sm2vKHnTwJ9>hie)}3Pnn@jnsuk5=U7B;GxdoifJ_wSIHD9ab*l-6;?0^Ar^@q(UG{{N<*c<*GESu&^ME)NZ+rrL*V1{
zLt197(hoX9z#cVSP{o%~q#_GHVe#6eW}5UC-V)e*YbZk?Q5E;XWw&O2wt(J755J15
zGDpF&`_MIrk6Onye$6qE#XP@u0>A=1u5!4DMegu&*V{yF1;lS}z?%6OxogbV8|a_8
zhMnUdV^@D+8F!lTUXJ%KWB)||z>#H?-otjYTTXV5eRP;91hw12R>f1uEvLbZ@F+g~#@&UUap#P+0PxjkmEPjs*ru~rJ!fS&At
zvIJ#s0;+aEIf8OG0X^LTLsW*1#|;5GX<-VE#wOMLT@2+4HpJ&Bj~fd
z$+2KB<6HE=G2`Jb(8Hp~*b=?`wXp-+a3}h(pB-0`t7F)SL4M#W{x4bJz#XM)G+a#ETff>%93EN_dyO;?Hmx?=!SMzyr8SYJb3kxWU%$&v*!b
zVMF%`ss9aw_!L9P9~&cLI~$ljjEVxzihJ0HlrSca
zVO%_n3GoP?6vONbPNOO&FeRq(v^bAxaRD>JVn}}Z{pl+=0;umP(5>uuqUO|Y6wi^)&F`CHWMR5d6-0Q|w
zrt$Nf^-!ZvahWrVI{Y42ILlJ%AK}}a4lfbdl