package com.desafioalura.gerenciadorpedidos.model;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class Categoria {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
// construtores ..
// getters e setters ..
}
package com.desafioalura.gerenciadorpedidos.model;
import jakarta.persistence.*;
@Entity
public class Produto {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true, nullable = false)
private String nome;
@Column(name = "valor")
private Double preco;
// construtores ..
// getters e setters ..
}
package com.desafioalura.gerenciadorpedidos.model;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import java.time.LocalDate;
@Entity
public class Pedido {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private LocalDate data;
// construtores ..
// getters e setters ..
}
// repositories
package com.desafioalura.gerenciadorpedidos.repository;
import com.desafioalura.gerenciadorpedidos.model.Categoria;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ICategoriaRepository extends JpaRepository<Categoria, Long> {}
public interface IPedidoRepository extends JpaRepository<Pedido, Long> {}
public interface IProdutoRepository extends JpaRepository<Produto, Long> {}
package com.desafioalura.gerenciadorpedidos.main;
import com.desafioalura.gerenciadorpedidos.model.Categoria;
import com.desafioalura.gerenciadorpedidos.model.Pedido;
import com.desafioalura.gerenciadorpedidos.model.Produto;
import com.desafioalura.gerenciadorpedidos.repository.ICategoriaRepository;
import com.desafioalura.gerenciadorpedidos.repository.IPedidoRepository;
import com.desafioalura.gerenciadorpedidos.repository.IProdutoRepository;
public class Main {
private ICategoriaRepository categoriaRepository;
private IPedidoRepository pedidoRepository;
private IProdutoRepository produtoRepository;
public Main(ICategoriaRepository categoriaRepository, IPedidoRepository pedidoRepository, IProdutoRepository produtoRepository) {
this.categoriaRepository = categoriaRepository;
this.pedidoRepository = pedidoRepository;
this.produtoRepository = produtoRepository;
}
public void salvar(Categoria categoria, Pedido pedido, Produto produto) {
categoriaRepository.save(categoria);
pedidoRepository.save(pedido);
produtoRepository.save(produto);
}
}
package com.desafioalura.gerenciadorpedidos;
import com.desafioalura.gerenciadorpedidos.main.Main;
import com.desafioalura.gerenciadorpedidos.model.Categoria;
import com.desafioalura.gerenciadorpedidos.model.Pedido;
import com.desafioalura.gerenciadorpedidos.model.Produto;
import com.desafioalura.gerenciadorpedidos.repository.ICategoriaRepository;
import com.desafioalura.gerenciadorpedidos.repository.IPedidoRepository;
import com.desafioalura.gerenciadorpedidos.repository.IProdutoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.time.LocalDate;
@SpringBootApplication
public class GerenciadorPedidosApplication implements CommandLineRunner {
@Autowired
private ICategoriaRepository categoriaRepository;
@Autowired
private IPedidoRepository pedidoRepository;
@Autowired
private IProdutoRepository produtoRepository;
public static void main(String[] args) {
SpringApplication.run(GerenciadorPedidosApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
Categoria categoria = new Categoria("Bebidas");
Pedido pedido = new Pedido(LocalDate.now());
Produto produto = new Produto("Refrigerante", 15.00);
Main main = new Main(categoriaRepository, pedidoRepository, produtoRepository);
main.salvar(categoria, pedido, produto);
System.out.println("Dados Salvos com sucesso!");
}
}
