package com.platform2easy.genesis.web.controller; import com.platform2easy.genesis.domain.model.Compra; import com.platform2easy.genesis.domain.model.ItemCompra; import com.platform2easy.genesis.domain.service.CompraService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import java.util.Arrays; @Controller @RequestMapping("compra") @AllArgsConstructor public class CompraController { private final CompraService service; @GetMapping() public String iniciar(Compra compra, Model model) { return "compra/formulario"; } @PostMapping() public String inserir(Compra compra, ItemCompra itemCompra, Model model) { itemCompra.setId(null); if (compra.getItens() == null) compra.setItens(Arrays.asList(itemCompra)); else compra.getItens().add(itemCompra); return iniciar(compra, model); } @PostMapping("{index}") public String removerItem(@PathVariable int index, Compra compra, Model model) { compra.getItens().remove(index); return iniciar(compra, model); } @PostMapping("salvar") public String salvar(Compra compra, Model model) { service.salvar(compra); return "redirect:/compra/listar"; } @GetMapping("listar") public String listar(Model model) { model.addAttribute("compras", service.listarTodos()); return "compra/lista"; } @GetMapping("editar/{id}") public String alterar(@PathVariable Long id, Model model) { model.addAttribute("compra", service.buscarPorId(id)); return "compra/formulario"; } @GetMapping("remover/{id}") public String remover(@PathVariable Long id, Model model) { service.deletarPorId(id); return "redirect:/compra/listar"; } }