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

import com.tmerclub.cloud.api.delivery.vo.StationVO;
import com.tmerclub.cloud.common.order.vo.OrderSelfStationVO;
import com.tmerclub.cloud.common.order.vo.OrderStationSpuDTO;
import com.tmerclub.cloud.common.order.vo.UserDeliveryInfoVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;

import java.util.ArrayList;
import java.util.List;

/**
 * @author lanhai
 */
public interface StationFeignClient {

    /**
     * 通过id获取自提门店信息（内部调用，无需token）
     * @param stationId
     * @return
     */
    ServerResponseEntity<StationVO> getStationByInside(Long stationId);

    /**
     * 查询门店集合（通过Ids）
     * @param stationIds 门店id集合
     * @return 门店集合
     */
    List<StationVO> listStationByIds(List<Long> stationIds);

    /**
     * 获取自提订单的门店数据 - 仅订单stationId为null时，获取距离用户最近的门店，如果没有传经纬度，则是返回一个有库存的门店
     * @param userDeliveryInfoVO
     * @param orderStationSpuList
     * @return
     */
    OrderSelfStationVO getOrderStation(UserDeliveryInfoVO userDeliveryInfoVO, ArrayList<OrderStationSpuDTO> orderStationSpuList);

    /**
     * 根据店铺id获取门店数量
     * @param shopId
     * @return
     */
    Integer getStationSize(Long shopId);
}
