package com.clx.performance.service.settle;

import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.vo.mq.*;
import com.clx.performance.vo.mq.settle.SettlementInvoiceStatusUpdateMqParam;
import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam;
import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam;
import com.clx.performance.vo.mq.settle.SettlementPlatformAutoConfirmMqParam;

public interface SettlementMqHandlerService {

    void settlementDetailAdd(SettlementDetailAddMqParam mq);

    void settlementStatistics(SettlementStatisticsMqParam mq);

    void settle(SettlementSettleMqParam mq);

    void invoiceTypeSync(SettlementInvoiceTypeSyncMqParam mq);

    void invoiceStatusSync(SettlementInvoiceStatusSyncMqParam mq);

    void payStatusSync(SettlementPayStatusSyncMqParam mq);

    void settlementDriverNotify(String childNo,Integer payType,String payErrorMsg);

    String paySettlementDriver(SettlementDriverDetail detail);

    String settlementNoGenerate();

    void riskProcess(SettlementOrderChildRiskProcessMqParam mq);

    void invoiceCompanyUpdate(SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq);

    void settlementPlatformAutoConfirm(SettlementPlatformAutoConfirmMqParam mq);

    void settlementInvoiceStatusUpdate(SettlementInvoiceStatusUpdateMqParam mq);

}
