package org.wcs.serve.controller.app;

import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.wcs.model.dto.serve.config.QueryConfigReq;
import org.wcs.model.dto.serve.config.UpdateConfigReq;
import org.wcs.model.vo.serve.AppServeDataResponse;
import org.wcs.model.vo.serve.AppServeResponse;
import org.wcs.model.vo.serve.config.QueryConfigResp;
import org.wcs.serve.service.intf.IConfigService;

import java.util.List;

/**
 * 系统配置相关控制器
 */
@RestController
@RequestMapping("/app/config")
@ResponseBody
@RequiredArgsConstructor
public class ConfigController {

    private final IConfigService configService;

    /**
     * 查询系统配置
     * @param queryConfigReq 查询系统配置请求
     * @return 响应结果
     */
    @PostMapping("/queryConfig")
    public AppServeDataResponse<List<QueryConfigResp>> queryConfig(@RequestBody QueryConfigReq queryConfigReq) {
        return configService.queryConfig(queryConfigReq);
    }

    /**
     * 修改系统配置
     * @param updateConfigReq 修改系统配置请求
     * @return 响应结果
     */
    @PostMapping("/updateConfig")
    public AppServeResponse updateConfig(@RequestBody @Validated UpdateConfigReq updateConfigReq) {
        return configService.updateConfig(updateConfigReq);
    }

    /**
     * 重新加载系统配置
     * @return 响应结果
     */
    @PutMapping("/reloadConfig")
    public AppServeResponse reloadConfig() {
        return configService.reloadConfig();
    }


}
