package com.escolapios.fctmongo.controller;

import com.escolapios.fctmongo.entity.CicloFormativo;
import com.escolapios.fctmongo.service.CicloFormativoService;
//import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Optional; 

@RestController
@RequestMapping("/api/ciclos")
@CrossOrigin(origins = "*")
public class CicloFormativoController {

    private final CicloFormativoService service;

    public CicloFormativoController(CicloFormativoService service) { 
        this.service = service; 
    }

    @GetMapping
    public ResponseEntity<List<CicloFormativo>> listar() { 
        return ResponseEntity.ok(service.obtenerTodos()); 
    }

    // AÑADIDO: Necesario para que funcione tu JS 'editarCiclo(id)'
    @GetMapping("/{id}")
    public ResponseEntity<CicloFormativo> obtenerPorId(@PathVariable String id) {
        return service.obtenerPorId(id)
                .map(ResponseEntity::ok)
                .orElse(ResponseEntity.notFound().build());
    }

    @PostMapping
    public ResponseEntity<CicloFormativo> crear(@RequestBody CicloFormativo ciclo) {
        CicloFormativo nuevoCiclo = service.guardar(ciclo);
        return ResponseEntity.ok(nuevoCiclo);
    }

    // AÑADIDO: Método DELETE solicitado
    @DeleteMapping("/{id}")
    public ResponseEntity<Void> eliminar(@PathVariable String id) {
        service.eliminar(id);
        return ResponseEntity.noContent().build(); // Devuelve un estado 204 sin cuerpo
    }
}
