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

import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfilMenu;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTPerfilMenu.IServiceUzyTPerfilMenu;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

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

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

    private final IServiceUzyTPerfilMenu serviceUzyTPerfilMenu;

    @Autowired
    public UzyTPerfilMenuController(IServiceUzyTPerfilMenu serviceUzyTPerfilMenu) {
        this.serviceUzyTPerfilMenu = serviceUzyTPerfilMenu;
    }

    @GetMapping("/exampleFindId/{id}")

    public ResponseEntity<DtoUzyTPerfilMenu> ListarPorID(@PathVariable Long id) {
        return ResponseEntity.ok(serviceUzyTPerfilMenu.ListarPorID(id));
    }

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

    }

    @PostMapping("/guardar")
    public ResponseEntity<DtoUzyTPerfilMenu> guardar(@RequestBody DtoUzyTPerfilMenu dtoUzyTPerfilMenu) {
        return new ResponseEntity<>(serviceUzyTPerfilMenu.guardar(dtoUzyTPerfilMenu), HttpStatus.OK);

    }

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

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

    }

}