
package com.tmerclub.cloud.api.supplier.feign;

import com.tmerclub.cloud.api.supplier.bo.SupplierDetailBO;
import com.tmerclub.cloud.api.supplier.vo.SupplierApiDetailVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;

import java.util.List;

/**
 * @author tmerclub
 * @date 2020/11/23
 */
public interface SupplierDetailFeignClient {

    /**
     * 根据供应商id获取供应商店铺信息
     * @param supplierId 供应商id
     * @return 供应商店铺信息
     */
    ServerResponseEntity<SupplierDetailBO> getSupplierBySupplierId(Long supplierId);

    /**
     * 根据供应商id列表， 获取供应商店铺列表信息
     * @param supplierIds 供应商id列表
     * @return 供应商店铺列表信息
     */
    ServerResponseEntity<List<SupplierApiDetailVO>> listBySupplierIds(List<Long> supplierIds);


    /**
     * 获取工厂店铺信息及扩展信息
     * @param supplierName 工厂店铺名称
     * @return 工厂店铺信息列表
     */
    ServerResponseEntity<List<SupplierApiDetailVO>> getSupplierDetailBySupplierName(String supplierName);

    /**
     * 获取指定供应商信息
     * @param supplierIds
     * @return
     */
    ServerResponseEntity<List<SupplierApiDetailVO>> listSupplierDetailBySupplierIds(List<Long> supplierIds);

    /**
     * 根据店铺Id查询相关的供应商列表
     *
     * @param shopId
     * @param supplierName
     * @return
     */
    ServerResponseEntity<List<Long>> listSupplierIdByShopIdAndSupplierName(Long shopId, String supplierName);
    /**
     * 删除通联支付的缓存
     */
    void deleteAllinpayCache();

    /**
     * 更改通联供应商影印件状态
     * @param bizUserId
     * @param status
     * @return
     */
    ServerResponseEntity<Void> updateAllinpayIdCardStatus(String bizUserId,
                                                          Integer status);

    /**
     * 更改通联供应商绑定手机号码状态
     * @param bizUserId
     * @param status
     * @return
     */
    ServerResponseEntity<Void> updateAllinpayBindPhoneStatus(String bizUserId,
                                                             Integer status);

    /**
     * 更新企业信息回调
     * @param bizUserId
     * @param status
     * @param result
     * @param failReason
     * @return
     */
    ServerResponseEntity<Void> updateCompanyInfoResult(String bizUserId,
                                                       Integer status,
                                                       Integer result,
                                                       String failReason);

    /**
     * 保存编号
     * @param supplierId
     * @param signAcctType
     * @param acctProtocolNo
     * @return
     */
    ServerResponseEntity<Void> updateAcctProtocolNoByType(Long supplierId, Integer signAcctType, String acctProtocolNo);

    /**
     * 获取未删除的供应商id
     * @return
     */
    ServerResponseEntity<List<SupplierApiDetailVO>> listSupplierIds();

}
