package com.jkcredit.invoice.service.upservice;

import cn.com.taiji.sdk.model.comm.protocol.eoms.company.B2bContractAddRequest;
import cn.com.taiji.sdk.model.comm.protocol.eoms.company.B2bContractAddResponse;
import cn.com.taiji.sdk.model.comm.protocol.eoms.company.B2bContractQueryRequest;
import cn.com.taiji.sdk.model.comm.protocol.eoms.company.B2bContractQueryResponse;
import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyAddRequest;
import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyAddResponse;
import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyEditRequest;
import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyEditResponse;
import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyQueryRequest;
import cn.com.taiji.sdk.model.comm.protocol.eoms.company.CompanyQueryResponse;
import cn.com.taiji.sdk.model.comm.protocol.eoms.company.ConfirmContractAddRequest;
import cn.com.taiji.sdk.model.comm.protocol.eoms.company.ConfirmContractAddResponse;
import com.jkcredit.invoice.util.RespR;

/**
 * 共同接口
 *
 * @author mumuxigua
 */
public interface CommInterFace {
    /**
     * 企业查询
     *
     * @param companyQueryRequest
     * @return
     */
    RespR<CompanyQueryResponse> companyQuery(CompanyQueryRequest companyQueryRequest);

    /**
     * 企业注册
     *
     * @param companyAddRequest
     * @return
     */
    RespR<CompanyAddResponse> addCompany(CompanyAddRequest companyAddRequest);

    /**
     * 协议上传
     *
     * @param contractAddRequest
     * @return
     */
    RespR<B2bContractAddResponse> b2bContractAdd(B2bContractAddRequest contractAddRequest);

    /**
     * 承诺协议上传
     *
     * @param confirmContractAddRequest
     * @return
     */
    RespR<ConfirmContractAddResponse> promiseAdd(ConfirmContractAddRequest confirmContractAddRequest);

    /**
     * 协议查询
     *
     * @param b2bContractQueryRequest
     * @return
     */
    RespR<B2bContractQueryResponse> b2bContractQuery(B2bContractQueryRequest b2bContractQueryRequest);


    /**
     * 关联企业邮箱
     * 渠道通过此接口增加或修改邮箱，保证各企业关联1个邮箱，如果修改多次，以最后一次修改的邮箱为该企业最新邮箱
     *
     * @param companyEditRequest
     * @return
     */
    RespR<CompanyEditResponse> editEmail(CompanyEditRequest companyEditRequest);
}
