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

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavPoblaProy;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavPoblaProy.IServiceUzyTavPoblaProy;

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+"/poblaproy")
public class UzyTavPoblaProyController {

    private final  IServiceUzyTavPoblaProy serviceUzyTavPoblaProy;

    public UzyTavPoblaProyController(IServiceUzyTavPoblaProy serviceUzyTavPoblaProy) {
        this.serviceUzyTavPoblaProy = serviceUzyTavPoblaProy;
    }

    @GetMapping("/exampleFindId/{id}")
    public ResponseEntity<DtoUzyTavPoblaProy> ListarPorID(@PathVariable Long id) {
        return new ResponseEntity<>(serviceUzyTavPoblaProy.ListarPorID(id), HttpStatus.OK);
    }

    @GetMapping("/getAll")
    public ResponseEntity<List<DtoUzyTavPoblaProy>> ListarRegistros() {
        return new ResponseEntity<>(serviceUzyTavPoblaProy.ListarRegistros(), HttpStatus.OK);
    }


    @PostMapping("/guardar")
    public ResponseEntity<DtoUzyTavPoblaProy> guardar(@Valid @RequestBody DtoUzyTavPoblaProy dtoUzyTavPoblaProy) {
        DtoUzyTavPoblaProy savedDto = serviceUzyTavPoblaProy.guardar(dtoUzyTavPoblaProy);
        return ResponseEntity.ok(savedDto);
    }


    @PutMapping("/editar/{id}")
    public ResponseEntity<DtoUzyTavPoblaProy> editar(@PathVariable Long id, @RequestBody DtoUzyTavPoblaProy dtoUzyTavPoblaProy) {
        return new  ResponseEntity<>(serviceUzyTavPoblaProy.editar(id, dtoUzyTavPoblaProy), HttpStatus.OK);
    }

    @GetMapping("/registrosRelacionadosproyect/{proyecId}")
    public ResponseEntity< List<DtoUzyTavPoblaProy> > ListarpoblaproyPorProyec(@PathVariable Long proyecId) {
        return new ResponseEntity<>(serviceUzyTavPoblaProy.ListarpoblaproyPorProyec(proyecId), HttpStatus.OK);
    }

}