package com.jkcredit.invoice.service.upService;

import cn.com.taiji.sdk.model.comm.protocol.eoms.company.*;
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 com.jkcredit.invoice.util.RespR;

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

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

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

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

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

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

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

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

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

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

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