package com.jkcredit.invoice.service.lowerService;

import cn.com.taiji.sdk.model.comm.protocol.tts.trade.service.CardTradeModel;
import com.jkcredit.invoice.model.entity.customer.CustomerCarRec;
import com.jkcredit.invoice.model.entity.invoice.SelfCarAppl;
import com.jkcredit.invoice.model.entity.invoice.SelfCarInvoice;
import com.jkcredit.invoice.model.entity.waybill.SelfCarTrade;
import com.jkcredit.invoice.service.lowerService.vo.*;
import com.jkcredit.invoice.util.RespR;

import java.util.List;

/**
 * 自有车掉上游接口服务
 */
public interface SelfCarServiceL {
    /**
     * 获取交易列表
     *
     * @param tradeRequestVo
     * @return
     */
    RespR<List<CardTradeModel>> getTradeList(TradeRequestVo tradeRequestVo);

    /**
     * 开票申请接口
     * @param invoiceApplVo
     * @return
     */
    RespR<String> applInvoice(InvoiceApplVo invoiceApplVo);

    /**
     *按申请id取发票
     */
    RespR<List<SelfCarInvoice>> getSelfCarInvoicesByApplyIds(ApplQueryInvVo applQueryInvVo);

    /**
     *已开发票查询接口
     */
    RespR<List<SelfCarInvoice>> getSelfCarInvoicesByTime(SelfCarDueQueryVo selfCarDueQueryVo);

    /**
     * 根据车牌获取ETC卡信息
     * @param etcQueryVo
     * @return
     */
    RespR getEtcInfo(EtcQueryVo etcQueryVo);

    /**
     * ETC备案
     * @param
     * @return
     */
    RespR customerEtcRec(EtcBindVo etcBindVo);


    /**
     * ETC校验
     * @param
     * @return
     */
    RespR customerEtcRecValid(EtcValidVo etcValidVo);

    /**
     * 车辆解绑
     * @param customerCarRec
     * @return
     */
    RespR customerCarUnRec(List<CustomerCarRec> customerCarRec);
}