package com.jkcredit.invoice.service.upservice;

import cn.com.taiji.sdk.model.comm.protocol.tts.card.server.*;
import cn.com.taiji.sdk.model.comm.protocol.tts.invoice.server.*;
import cn.com.taiji.sdk.model.comm.protocol.tts.trade.service.CardTradeRequest;
import cn.com.taiji.sdk.model.comm.protocol.tts.trade.service.CardTradeResponse;
import cn.com.taiji.sdk.model.comm.protocol.tts.trade.service.TradeApplyQueryRequest;
import cn.com.taiji.sdk.model.comm.protocol.tts.trade.service.TradeApplyQueryResponse;
import com.jkcredit.invoice.util.RespR;

/**
 * 自有车调用平台接口
 *
 * @author mumuxigua
 */
public interface SelfCarInterface {

    /**
     * 用户卡列表查询
     *
     * @param request
     * @return
     */
    RespR<CardBindQueryListToBResponse> cardBindQueryListToB(CardBindQueryListToBRequest request);

    /**
     * 用户卡查询
     *
     * @param bRequest
     * @return
     */
    RespR<CardQueryCardToBResponse> cardQueryCardToB(CardQueryCardToBRequest bRequest);

    /**
     * 用户绑卡
     *
     * @param bRequest
     * @return
     */
    RespR<CardBindingToBResponse> cardBindingToB(CardBindingToBRequest bRequest);

    /**
     * 检验验证码
     *
     * @param request
     * @return
     */
    RespR<CardValidCodeToBResponse> cardValidCodeToB(CardValidCodeToBRequest request);

    /**
     * 用户卡解绑
     *
     * @param request
     * @return
     */
    RespR<CardUnbindToBResponse> cardUnbindToB(CardUnbindToBRequest request);

    /**
     * 交易查询接口
     *
     * @param cardTradeRequest
     * @return
     */
    RespR<CardTradeResponse> cardTrade(CardTradeRequest cardTradeRequest);

    /**
     * 申请开票接口
     *
     * @param request
     * @return
     */
    RespR<B2BInvoiceApplyResponse> b2Binvoiceapply(B2BInvoiceApplyRequest request);

    /**
     * 已开发票查询接口
     *
     * @param request
     * @return
     */
    RespR<B2BInvoiceQueryResponse> b2Binvoicequery(B2BInvoiceQueryRequest request);

    /**
     * 按申请查询发票接口
     *
     * @param invoiceQueryByApplyRequest
     * @return
     */
    RespR<B2BInvoiceQueryByApplyResponse> b2bContractQuery(B2BInvoiceQueryByApplyRequest invoiceQueryByApplyRequest);

    /**
     * 发票下载接口
     *
     * @param b2bInvoicePackageRequest
     * @return
     */
    RespR<B2bInvoicePackageResponse> b2bInvoicePackage(B2bInvoicePackageRequest b2bInvoicePackageRequest);

    /**
     * Etc更换绑定企业
     *
     * @param cardChangeTitleRequest
     * @return
     */
    RespR<CardChangeTitleResponse> changeCardTile(CardChangeTitleRequest cardChangeTitleRequest);

    /**
     * 查询Etc换绑记录
     *
     * @param cardChangeQueryRequest
     * @return
     */
    RespR<CardChangeQueryResponse> queryChangeCard(CardChangeQueryRequest cardChangeQueryRequest);


    /**
     * 5.6按交易查申请
     *
     * @param tradeApplyQueryRequest
     * @return
     */
    RespR<TradeApplyQueryResponse> queryApplyQueryByTradeId(TradeApplyQueryRequest tradeApplyQueryRequest);
}
