package com.brilliance.isc.esb.api.cfca;

import com.brilliance.isc.esb.model.Req;
import com.brilliance.isc.esb.model.Res;
import com.brilliance.isc.esb.model.bd.*;
import com.brilliance.isc.esb.model.cfca.ReqFT70;
import com.brilliance.isc.esb.model.cfca.ReqFT72;
import com.brilliance.isc.esb.model.cfca.ResFT70;
import com.brilliance.isc.esb.model.cfca.ResFT72;
import com.brilliance.isc.esb.model.tysf.ReqGJ70;
import com.brilliance.isc.esb.model.tysf.ResGJ70;
import com.brilliance.isc.esb.model.whj.ReqWHJ1;
import com.brilliance.isc.esb.model.whj.ResWHJ1;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * CFCA 接口平台请求方
 *
 * @restApi
 */
@RequestMapping("/EBIS")
public interface CfcaClient {
    /**
     * DF72 安心签下载(原FT72)
     *
     * @param reqFT72
     * @return
     */
    @PostMapping("/DF72")
    Res<ResFT72> callFT72(Req<ReqFT72> reqFT72);

    /**
     * PF70 上传合同签署(原FT70)
     *
     * @param reqFT70
     * @return
     */
    @PostMapping("/PF70")
    Res<ResFT70> callFT70(Req<ReqFT70> reqFT70);

    /**
     * OF70 安心签ofd盖章(原GJ70)
     *
     * @param reqGJ70
     * @return
     */
    @PostMapping("/OF70")
    Res<ResGJ70> callGJ70(Req<ReqGJ70> reqGJ70);

    /**
     * WHJ1 光大接入外汇局跨境金融平台
     *
     * @param reqWHJ1
     * @return
     */
    @PostMapping("/WHJ1")
    Res<ResWHJ1> callWHJ1(Req<ReqWHJ1> reqWHJ1);

    /**
     * BDTK 获取北京电力平台访问令牌
     *
     * @param reqBDTK
     * @return
     */
    @PostMapping("/BDTK")
    Res<ResBDTK> callBDTK(Req<ReqBDTK> reqBDTK);

    /**
     * BDTK 调用北京电力平台保函开立接口
     *
     * @param reqBDBH
     * @return
     */
    @PostMapping("/BDBH")
    Res<ResBDBH> callBDBH(Req<ReqBDBH> reqBDBH);

    /**
     * BDTK 调用北京电力平台保函注销接口
     *
     * @param reqBDBH
     * @return
     */
    @PostMapping("/BDZX")
    Res<ResBDZX> callBDZX(Req<ReqBDBH> reqBDBH);

    /**
     * BDTX 调用北京电力平台保函提前注销通知接口
     *
     * @param reqBDTX
     * @return
     */
    @PostMapping("/BDTX")
    Res<ResBDTX> callBDTX(Req<ReqBDBH> reqBDBH);

    /**
     * BDZC 调用北京电力平台追偿通知接口
     *
     * @param reqBDZC
     * @return
     */
    @PostMapping("/BDZC")
    Res<ResBDZC> callBDZC(Req<ReqBDBH> reqBDBH);

    /**
     * BDDY 调用北京电力平台动用通知接口
     *
     * @param reqBDDY
     * @return
     */
    @PostMapping("/BDDY")
    Res<ResBDDY> callBDDY(Req<ReqBDBH> reqBDBH);
}
