package com.template.api;

import com.baomidou.mybatisplus.extension.api.R;
import com.template.model.dto.OperationWarningDto;
import com.template.model.dto.WarningSavePushDto;
import com.template.model.pojo.SmartWarning;
import com.template.model.result.CommonResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;

/**
 * @Author: binguo
 * @Date: 2023/3/30 星期四 17:28
 * @Description: com.video.api
 * @Version: 1.0
 */
@RequestMapping("/api/smartWarning")
@Api(tags = {"SmartWarningControllerAPI"}, value = "预警信息")
public interface SmartWarningControllerAPI {
    @PostMapping(value = "/insertSmartWarning")
    @ApiOperation(value = "添加预警信息", notes = "添加预警信息数据", httpMethod = "POST")
    CommonResult insertSmartWarning(@Validated @RequestBody SmartWarning smartApply, BindingResult bindingResult);

    @PostMapping(value = "/updateSmartWarningById")
    @ApiOperation(value = "编辑预警信息数据", notes = "编辑预警信息数据", httpMethod = "POST")
    CommonResult updateSmartWarningById(@Validated @RequestBody SmartWarning ra, BindingResult bindingResult);

    @GetMapping(value = "/queryPageSmartWarning")
    @ApiOperation(value = "预警信息分页数据", notes = "预警信息分页数据", httpMethod = "GET")
    CommonResult queryPageSmartWarning(@RequestParam int currentPage, @RequestParam int pageCount, String name,String state);

    @GetMapping(value = "/deleteSmartWarningById")
    @ApiOperation(value = "根据ID删除指定预警信息", notes = "根据ID删除指定预警信息", httpMethod = "GET")
    CommonResult deleteSmartWarningById(@RequestParam int id);

    @PostMapping(value = "/operation")
    @ApiOperation(value = "根据ID操作", notes = "根据ID操作", httpMethod = "POST")
    CommonResult operation(@RequestBody OperationWarningDto operationWarningDto);

    @GetMapping(value = "/excelSmartWarning")
    @ApiOperation(value = "预警导出", notes = "预警导出", httpMethod = "GET")
    void excelSmartWarning(HttpServletResponse response,String location,String state);

    @GetMapping(value = "/warningType")
    @ApiOperation(value = "预警小程序下拉框", notes = "预警小程序下拉框", httpMethod = "GET")
    CommonResult warningType();

    @GetMapping(value = "/pageWarning")
    @ApiOperation(value = "预警小程序分页展示", notes = "预警小程序分页展示", httpMethod = "GET")
    CommonResult pageWarning(@RequestParam int currentPage, @RequestParam int pageCount,@RequestParam String type,@RequestParam String dateTime);

    @GetMapping(value = "/warningDepartmentTree")
    @ApiOperation(value = "查询部门树形结构数据", notes = "查询部门树形结构数据", httpMethod = "GET")
    CommonResult warningDepartmentTree();

    @GetMapping(value = "/warningUserList")
    @ApiOperation(value = "预警推送用户分页", notes = "预警推送用户分页", httpMethod = "GET")
    CommonResult warningUserList(@RequestParam int currentPage, @RequestParam int pageCount,Integer departmentId,String name);

    @GetMapping(value = "/warningPushList")
    @ApiOperation(value = "可推送用户展示", notes = "预警推送用户分页", httpMethod = "GET")
    CommonResult warningPushList();

    @PostMapping(value = "/warningSavePush")
    @ApiOperation(value = "添加预警可推送用户", notes = "添加预警可推送用户", httpMethod = "POST")
    CommonResult warningSavePush(@RequestBody WarningSavePushDto warningSavePushDto);

    @GetMapping(value = "/warningDeletePush")
    @ApiOperation(value = "删除预警可推送用户", notes = "删除预警可推送用户", httpMethod = "GET")
    CommonResult warningDeletePush(Integer id);


}
