package com.cool.store.mapper;

import com.cool.store.dto.store.StoreAreaDTO;
import com.cool.store.dto.store.StoreOrderTimeDTO;
import com.cool.store.entity.StoreDO;
import com.cool.store.response.MiniShopsResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface StoreMapper {

    StoreDO getByStoreId(@Param("storeId") String storeId);

    List<StoreDO> getEffectiveStoreByStoreIds(@Param("storeIds") List<String> storeIds);
    /**
     * 根据区域Id查询所有门店(包含所有区域子节点)
     * @param regionId
     * @return
     */
    List<StoreDO> listStoreByRegionId(@Param("regionId") String regionId);


    List<String> getStoreNumByStoreIds(@Param("storeIds") List<String> storeIds);

    StoreDO getByStoreNum(@Param("storeNum") String storeNum);

    /**
     * 查询自定义字段含有该手机号的门店
     * @param mobile
     * @return
     */
    List<StoreDO> listByMobile(@Param("mobile") String mobile);

    List<MiniShopsResponse> getSubStoreByRegionIdsAndMobile(@Param("regionIdList") List<String> regionIdList, @Param("mobile") String mobile,
                                                            @Param("storeName") String storeName, @Param("storeNum") String storeNum);
    /**
     * 分页查询门店数据
     * @return
     */
    List<StoreDO> list(@Param("isIot") Integer isIot);

    List<StoreAreaDTO> getStoreAreaList( @Param("storeIds") List<String> storeIds);

    List<StoreDO> getStoreNumByStoreCodes(@Param("storeCodeIds") List<String> storeCodeIds);

    List<StoreAreaDTO> listStoreByRegionPathList(@Param("regionPathList") List<String> regionPathList);

    /**
     * 批量新增或编辑最新订货时间
     * @param dtoList 门店最新订货时间DTO列表
     * @return int
     */
    int batchInsertOrUpdateOrderTime(@Param("dtoList") List<StoreOrderTimeDTO> dtoList);

    /**
     * 查询所有门店id和门店编码
     */
    List<StoreDO> getAllStoreIdAndNum(@Param("storeStatus") List<String> storeStatus);
}
