package com.escolapios.fctmongo.controller;

import com.escolapios.fctmongo.entity.ResultadoAprendizaje;
import com.escolapios.fctmongo.service.ResultadoAprendizajeService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/resultados-aprendizaje")
@RequiredArgsConstructor 
@CrossOrigin(origins = "*") 
public class ResultadoAprendizajeController {

    private final ResultadoAprendizajeService service;

    // 🟢 GET /api/resultados-aprendizaje o /api/resultados-aprendizaje?ciclo=IEA
    @GetMapping
    public ResponseEntity<List<ResultadoAprendizaje>> listarTodos(@RequestParam(required = false) String ciclo) {
        if (ciclo != null && !ciclo.isBlank()) {
            return ResponseEntity.ok(service.obtenerPorCiclo(ciclo));
        }
        return ResponseEntity.ok(service.obtenerTodos());
    }

    // GET /api/resultados-aprendizaje/{id} (Buscar por ID para editar)
    @GetMapping("/{id}")
    public ResponseEntity<ResultadoAprendizaje> obtenerPorId(@PathVariable String id) {
        return ResponseEntity.ok(service.obtenerPorId(id));
    }

    // POST /api/resultados-aprendizaje (Crear nuevo)
    @PostMapping
    public ResponseEntity<ResultadoAprendizaje> crear(@RequestBody ResultadoAprendizaje ra) {
        ra.setId(null); 
        return ResponseEntity.ok(service.guardar(ra));
    }

    // PUT /api/resultados-aprendizaje/{id} (Actualizar existente)
    @PutMapping("/{id}")
    public ResponseEntity<ResultadoAprendizaje> actualizar(@PathVariable String id, @RequestBody ResultadoAprendizaje ra) {
        ra.setId(id); 
        return ResponseEntity.ok(service.guardar(ra));
    }

    // DELETE /api/resultados-aprendizaje/{id} (Borrar)
    @DeleteMapping("/{id}")
    public ResponseEntity<Void> eliminar(@PathVariable String id) {
        service.eliminar(id);
        return ResponseEntity.noContent().build();
    }
}
