package com.diagbot.client;

import com.diagbot.client.hystrix.MedAppealInfoServiceHystrix;
import com.diagbot.dto.*;
import com.diagbot.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;
import java.util.List;
import java.util.Map;


/**
 * @description: 申诉功能远程调用
 * @author: zhoutg
 * @date: 2020/4/13 18:28
 */
@FeignClient(name = "gateway-service", url = "${appeal.address}", fallback = MedAppealInfoServiceHystrix.class)
public interface MedAppealInfoServiceClient {


    @PostMapping(value = "/report-service/medAppealInfoManage/addAppealInfo")
    CommonResult<Boolean> addAppealInfo(@RequestBody @Valid AddAppealInfoVO addAppealInfoVO);

    @PostMapping(value = "/report-service/medAppealInfoManage/getReviewer")
    CommonResult<List<GetReviewerDTO>> getReviewer(@RequestBody GetReviewerVO getReviewerVO);

    @PostMapping(value = "/report-service/medAppealInfoManage/getAppealOperationType")
    CommonResult<Map<String, String>> getAppealOperationType(@RequestBody @Valid GetAppealOperationTypeVO getAppealOperationTypeVO);

    @PostMapping(value = "/report-service/medAppealInfoManage/cancelAppealInfo")
    CommonResult<Boolean> cancelAppealInfo(@RequestBody @Valid CancelAppealInfoVO cancelAppealInfoVO);

    @PostMapping(value = "/report-service/medAppealInfoManage/getAppealInfo")
    CommonResult<GetAppealInfoDTO> getAppealInfo(@RequestBody GetAppealInfoVO getAppealInfoVO);

    @PostMapping(value = "/report-service/medAppealInfoManage/getAppealDept")
    CommonResult<List<GetAppealDeptDTO>> getAppealDept(@RequestBody GetAppealDeptVo getAppealDeptVo);

    @PostMapping(value = "/report-service/medAppealInfoManage/getAppealMode")
    CommonResult<List<GetAppealModeDTO>> getAppealMode(@RequestBody GetAppealModeVo getAppealModeVo);

}



