package ec.edu.espe.movilidad.MovilidadWS.Controller;

import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavDoCompar;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavDoCompar.IServiceUzyTavDoCompar;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION;

@RestController
@CrossOrigin(origins = "*")
@RequestMapping(V1_API_VERSION + "/docompar")
public class UzyTavDoComparController {

    private final IServiceUzyTavDoCompar serviceUzyTavDoCompar;

    public UzyTavDoComparController(IServiceUzyTavDoCompar serviceUzyTavDoCompar) {
        this.serviceUzyTavDoCompar = serviceUzyTavDoCompar;
    }

    @GetMapping("/exampleFindId/{id}")
    public DtoUzyTavDoCompar ListarPorID(@PathVariable Long id) {
        return serviceUzyTavDoCompar.ListarPorID(id);
    }

    @GetMapping("/getAll")
    public List<DtoUzyTavDoCompar> ListarRegistros() {
        return serviceUzyTavDoCompar.ListarRegistros();
    }

    @PostMapping("/guardar")
    public DtoUzyTavDoCompar guardar(@Valid @RequestBody DtoUzyTavDoCompar dtoUzyTavDoCompar) {
        return serviceUzyTavDoCompar.guardar(dtoUzyTavDoCompar);
    }


    @PutMapping("/editar/{id}")
    public DtoUzyTavDoCompar editar(@PathVariable Long id, @Valid @RequestBody DtoUzyTavDoCompar dtoUzyTavDoCompar) {
        return serviceUzyTavDoCompar.editar(id, dtoUzyTavDoCompar);
    }


    @DeleteMapping("/eliminar/{id}")
    public ResponseEntity<String> eliminar(@PathVariable Long id) {
        boolean eliminado = serviceUzyTavDoCompar.eliminar(id);
        if (eliminado) {
            return ResponseEntity.ok("El registro se eliminĂ³ exitosamente.");
        } else {
            return ResponseEntity.notFound().build();
        }
    }
}