package com.astalange.web.controller; import com.astalange.core.entity.Equipement; import com.astalange.core.repository.EquipementRepository; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; @Controller @RequestMapping("/equipements") public class EquipementController { private final EquipementRepository equipementRepository; public EquipementController(EquipementRepository equipementRepository) { this.equipementRepository = equipementRepository; } @GetMapping public String listEquipements(Model model) { model.addAttribute("equipements", equipementRepository.findAll()); return "parametrage/equipements_list"; } @GetMapping("/new") public String showCreateForm(Model model) { model.addAttribute("equipement", new Equipement()); return "parametrage/equipements_form"; } @GetMapping("/{id}/edit") public String showEditForm(@PathVariable Long id, Model model) { Equipement equipement = equipementRepository.findById(id) .orElseThrow(() -> new IllegalArgumentException("Invalid equipment ID: " + id)); model.addAttribute("equipement", equipement); return "parametrage/equipements_form"; } @PostMapping public String saveEquipement(@ModelAttribute("equipement") Equipement equipement) { if (equipement.getObligatoire() == null) { equipement.setObligatoire(false); } equipementRepository.save(equipement); return "redirect:/equipements"; } @PostMapping("/{id}/delete") public String deleteEquipement(@PathVariable Long id) { Equipement equipement = equipementRepository.findById(id) .orElseThrow(() -> new IllegalArgumentException("Invalid equipment ID: " + id)); equipementRepository.delete(equipement); return "redirect:/equipements"; } }