package com.yuchen.saas.payment.api.feign;

import com.yuchen.saas.payment.api.dto.AuditMoreOrderRefundReqDTO;
import com.yuchen.saas.payment.api.dto.CreateMoreOrderRefundReqDTO;
import com.yuchen.saas.payment.api.dto.PageMoreOrderRefundRecordReqDTO;
import com.yuchen.saas.payment.api.dto.PageMoreOrderRefundReqDTO;
import com.yuchen.saas.payment.api.vo.moreOrderRefund.PmgBatParkPayMoreOrderRefundDetailVO;
import com.yuchen.saas.payment.api.vo.moreOrderRefund.PmgBatParkPayMoreOrderRefundRecordVO;
import com.yuchen.saas.payment.api.vo.moreOrderRefund.PmgBatParkPayMoreOrderRefundVO;
import org.nest.springwrap.core.launch.app.AppNameConstant;
import org.nest.springwrap.core.mp.support.NestPage;
import org.nest.springwrap.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;


@FeignClient(
        value = AppNameConstant.SAAS_PAYMENT,
        fallbackFactory = ParkPayMoreOrderRefundFeignFallback.class
)
public interface ParkPayMoreOrderRefundFeign {

    @PostMapping("/payMoreOrderRefund/pageMoreOrderRefundList")
    R<NestPage<PmgBatParkPayMoreOrderRefundVO>> pageMoreOrderRefundList(@RequestBody PageMoreOrderRefundReqDTO reqDTO);

    @GetMapping("/payMoreOrderRefund/getMoreOrderRefundDetail/{id}")
    R<PmgBatParkPayMoreOrderRefundDetailVO> getMoreOrderRefundDetail(@PathVariable Long id);

    @PostMapping("/payMoreOrderRefund/createMoreOrderRefund")
    R<Boolean> createMoreOrderRefund(@RequestBody CreateMoreOrderRefundReqDTO reqDTO);

    @PostMapping("/payMoreOrderRefund/auditMoreOrderRefund")
    R<Boolean> auditMoreOrderRefund(@RequestBody AuditMoreOrderRefundReqDTO reqDTO);

    @PostMapping("/payMoreOrderRefund/pageMoreOrderRefundRecordList")
    R<NestPage<PmgBatParkPayMoreOrderRefundRecordVO>> pageMoreOrderRefundRecordList(@RequestBody PageMoreOrderRefundRecordReqDTO reqDTO);

    @PostMapping("/payMoreOrderRefund/exportMoreOrderRefundRecordList")
    byte[] exportMoreOrderRefundRecordList(@RequestBody PageMoreOrderRefundRecordReqDTO reqDTO);

}
