package com.pmu.betengine.controller; import com.pmu.betengine.model.dto.ReunionDTO; import com.pmu.betengine.model.dto.ReunionRequestDTO; import com.pmu.betengine.service.ReunionService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api/v1/reunions") @Tag(name = "Gestion des Réunions des Courses", description = "Endpoints relatifs à l'objet Reunion") @CrossOrigin(origins = "*") public class ReunionController { private final ReunionService reunionService; public ReunionController(ReunionService reunionService) { this.reunionService = reunionService; } @GetMapping public ResponseEntity> getAllReunions() { return ResponseEntity.ok(reunionService.getAllReunions()); } @GetMapping("/{id}") public ResponseEntity getReunionById(@PathVariable Long id) { return ResponseEntity.ok(reunionService.getReunionById(id)); } @PostMapping @Operation(summary = "Enregistrer Une réunion", description = "Méthode permettant d'enregistrer la réunion") public ResponseEntity createReunion(@Valid @RequestBody ReunionRequestDTO requestDTO) { return new ResponseEntity<>(reunionService.createReunion(requestDTO), HttpStatus.CREATED); } @PutMapping("/{id}") public ResponseEntity updateReunion(@PathVariable Long id, @Valid @RequestBody ReunionRequestDTO requestDTO) { return ResponseEntity.ok(reunionService.updateReunion(id, requestDTO)); } @DeleteMapping("/{id}") public ResponseEntity deleteReunion(@PathVariable Long id) { reunionService.deleteReunion(id); return ResponseEntity.noContent().build(); } }