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

import com.tmerclub.cloud.api.multishop.bo.EsShopDetailBO;
import com.tmerclub.cloud.api.multishop.bo.ShopSimpleBO;
import com.tmerclub.cloud.api.multishop.vo.ShopDetailVO;
import com.tmerclub.cloud.api.multishop.vo.ShopUserVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;

import java.util.List;

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

    /**
     * 根据店铺id获取店铺信息
     * @param shopId 店铺id
     * @return 店铺信息
     */
    ServerResponseEntity<EsShopDetailBO> getShopByShopId(Long shopId);

    /**
     * 根据店铺id获取店铺信息
     * @param shopId 店铺id
     * @return 店铺信息
     */
    ServerResponseEntity<ShopDetailVO> getShopDetailByShopId(Long shopId);


    /**
     * 根据店铺id列表， 获取店铺列表信息
     * @param shopIds 店铺id列表
     * @return 店铺列表信息
     */
    ServerResponseEntity<List<ShopDetailVO>> listByShopIds(List<Long> shopIds);

    /**
     * 获取店铺信息及扩展信息
     * @param shopId
     * @return
     */
    ServerResponseEntity<EsShopDetailBO> shopExtensionData(Long shopId);

    /**
     * 获取店铺信息及扩展信息
     * @param shopName 店铺名称
     * @return 店铺信息列表
     */
    ServerResponseEntity<List<ShopDetailVO>> getShopDetailByShopIdAndShopName(String shopName);

    /**
     * 根据参数获取店铺id列表
     * @param shopSimpleBO
     * @return
     */
    ServerResponseEntity<List<ShopSimpleBO>> listSimple(ShopSimpleBO shopSimpleBO);

    /**
     * 根据用户id获取用户信息
     * @param shopUserId 用户id
     * @return 用户信息
     */
    ServerResponseEntity<ShopUserVO> getShopUserByShopUserId(Long shopUserId);

    /**
     * 根据店铺状态获取店铺id列表
     * @param shopStatus
     * @return
     */
    ServerResponseEntity<List<Long>> getShopIdsByShopStatus(Integer shopStatus);

    /**
     * 根据店铺的名称获取店铺id列表
     * @param shopName
     * @return
     */
    ServerResponseEntity<List<Long>> getShopIdsByLikeShopName(String shopName);

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

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

    /**
     * 删除通联支付的缓存
     */
    void deleteAllinpayCache();

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

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

    /**
     * 获取未删除的店铺id
     * @return
     */
    ServerResponseEntity<List<ShopDetailVO>> listShopIds();
}
