package com.its.vds.api.controller;

import com.its.vds.api.service.VdsControlService;
import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@Api(tags = "1.VDS-0.제어")
@Validated
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/vds/control")
public class VdsControlController {

    private final VdsControlService service;

//    @ApiOperation(value = "VDS 제어기 리셋", response = VdsControlDto.VdsControlRes.class)
//    @PostMapping(value = "/reset/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
//    public VdsControlDto.VdsControlRes controlReset(
//            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10005", required = true)
//            @PathVariable("ctlrNmbr") Long ctlrNmbr,
//            @ApiParam(name = "req", value = "VDS 제어기 제어 정보", example = "[ADMIN]", required = true)
//            @RequestBody @Valid final VdsControlDto.VdsControlResetReq req,
//            HttpServletRequest request) {
//        return this.service.controlReset(ctlrNmbr, req);
//    }
//
//    @ApiOperation(value = "VDS 제어기 전광판 ON/OFF 제어", response = VdsControlDto.VdsControlRes.class)
//    @PostMapping(value = "/power/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
//    public VdsControlDto.VdsControlRes controlPower(
//            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10005", required = true)
//            @PathVariable("ctlrNmbr") Long ctlrNmbr,
//            @ApiParam(name = "req", value = "VDS 제어기 제어 정보", example = "[ADMIN]", required = true)
//            @RequestBody @Valid final VdsControlDto.VdsControlPanlOnOfReq req,
//            HttpServletRequest request) {
//        return this.service.controlPanlOnOff(ctlrNmbr, req);
//    }
//
//    @ApiOperation(value = "VDS 제어기 밝기 제어", response = VdsControlDto.VdsControlRes.class)
//    @PostMapping(value = "/bright/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
//    public VdsControlDto.VdsControlRes controlBright(
//            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10005", required = true)
//            @PathVariable("ctlrNmbr") Long ctlrNmbr,
//            @ApiParam(name = "req", value = "VDS 제어기 제어 정보", example = "[ADMIN]", required = true)
//            @RequestBody @Valid final VdsControlDto.VdsControlBrightReq req,
//            HttpServletRequest request) {
//        return this.service.controlBright(ctlrNmbr, req);
//    }
//
//    @ApiOperation(value = "VDS 제어기 FAN 제어", response = VdsControlDto.VdsControlRes.class)
//    @PostMapping(value = "/fan/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
//    public VdsControlDto.VdsControlRes controlFan(
//            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10005", required = true)
//            @PathVariable("ctlrNmbr") Long ctlrNmbr,
//            @ApiParam(name = "req", value = "VDS 제어기 제어 정보", example = "[ADMIN]", required = true)
//            @RequestBody @Valid final VdsControlDto.VdsControlFanReq req,
//            HttpServletRequest request) {
//        return this.service.controlFan(ctlrNmbr, req);
//    }
//
//    @ApiOperation(value = "VDS 제어기 HEATER 제어", response = VdsControlDto.VdsControlRes.class)
//    @PostMapping(value = "/heater/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
//    public VdsControlDto.VdsControlRes controlHeater(
//            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10005", required = true)
//            @PathVariable("ctlrNmbr") Long ctlrNmbr,
//            @ApiParam(name = "req", value = "VDS 제어기 제어 정보", example = "[ADMIN]", required = true)
//            @RequestBody @Valid final VdsControlDto.VdsControlHeaterReq req,
//            HttpServletRequest request) {
//        return this.service.controlHeater(ctlrNmbr, req);
//    }
//
//    @ApiOperation(value = "VDS 제어기 동작온도 설정", response = VdsControlDto.VdsControlRes.class)
//    @PostMapping(value = "/run-temp/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
//    public VdsControlDto.VdsControlRes controlRunTemp(
//            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10005", required = true)
//            @PathVariable("ctlrNmbr") Long ctlrNmbr,
//            @ApiParam(name = "req", value = "VDS 제어기 제어 정보", example = "[ADMIN]", required = true)
//            @RequestBody @Valid final VdsControlDto.VdsControlRunTempReq req,
//            HttpServletRequest request) {
//        return this.service.controlRunTemp(ctlrNmbr, req);
//    }
//
//    @ApiOperation(value = "VDS 제어기 시간동기", response = VdsControlDto.VdsControlRes.class)
//    @PostMapping(value = "/time-sync/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
//    public VdsControlDto.VdsControlRes controlTimeSync(
//            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10005", required = true)
//            @PathVariable("ctlrNmbr") Long ctlrNmbr,
//            @ApiParam(name = "req", value = "VDS 제어기 제어 정보", example = "[ADMIN]", required = true)
//            @RequestBody @Valid final VdsControlDto.VdsControlTimeSyncReq req,
//            HttpServletRequest request) {
//        return this.service.controlTimeSync(ctlrNmbr, req);
//    }

}
