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.vehicle.VehicleQueryRequest;
import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleQueryResponse;
import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleRegisterRequest;
import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleRegisterResponse;
import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.*;
import com.jkcredit.invoice.util.RespR;

/**
 * 无车车相关接口
 */
public interface NoCarInterface {


    /**
     * 车辆备案
     * @param registerRequest
     * @return
     */
    RespR<VehicleRegisterResponse> vehicleRegister(VehicleRegisterRequest registerRequest);

    /**
     * 备案车辆查询
     * @param vehicleQueryRequest
     * @return
     */
    RespR<VehicleQueryResponse> vehicleQuery(VehicleQueryRequest vehicleQueryRequest);

    /**
     * 运单指令开始上传
     * @param waybillStartRequest
     * @return
     */
    RespR<WaybillStartResponse> waybillStart(WaybillStartRequest waybillStartRequest);

    /**
     * 运单指令结束上传
     * @param waybillEndRequest
     * @return
     */
    RespR<WaybillEndResponse> waybillEnd(WaybillEndRequest waybillEndRequest);

    /**
     * 历史运单开始上传指令
     * @param waybillHistoryStartRequest
     * @return
     */
    RespR<WaybillHistoryStartResponse> waybillHistoryStart(WaybillHistoryStartRequest waybillHistoryStartRequest);

    /**
     * 历史运单结束指令
     * @param waybillHistoryEndRequest
     * @return
     */
    RespR<WaybillHistoryEndResponse> waybillHistoryEnd(WaybillHistoryEndRequest waybillHistoryEndRequest);

    /**
     * 根据运单号查询发票数据
     * @param waybillNumFindInvoiceRequest
     * @return
     */
    RespR<WaybillNumFindInvoiceResponse> waybillNumFindInvoice(WaybillNumFindInvoiceRequest waybillNumFindInvoiceRequest);

    /**
     * 红冲发票信息查询
     * @param waybillInvoiceRedQueryRequest
     * @return
     */
    RespR<WaybillInvoiceRedQueryResponse> waybillInvoiceRedQuery(WaybillInvoiceRedQueryRequest waybillInvoiceRedQueryRequest);

    /**
     * 账单查询接口
     * @param waybillCountQueryRequest
     * @return
     */
    RespR<WaybillCountQueryResponse> waybillCountQuery(WaybillCountQueryRequest waybillCountQueryRequest);
}
