package com.gic.haoban.manage.service.service;

import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.manage.api.dto.StoreOrGroupInfoDTO;
import com.gic.haoban.manage.service.entity.TabStoreRange;
import com.gic.haoban.manage.service.entity.TabStoreRelation;

import java.util.List;

/**
 * Created 2021/4/9.
 *
 * @author hua
 */
public interface StoreRangeService {
    /**
     * 保存企业的关联关系
     *
     * @param relations
     * @param enterpriseId
     * @param wxEnterpriseId
     * @return
     */
    public boolean saveStoreRange(List<StoreOrGroupInfoDTO> relations, String enterpriseId, String wxEnterpriseId);

    /**
     * 绑定列表
     *
     * @param enterpriseId
     * @param wxEnterpriseId
     * @return
     */
    public List<StoreOrGroupInfoDTO> queryBindStoreRange(String enterpriseId, String wxEnterpriseId);

    /**
     * 获取商户所有绑定列表
     *
     * @param enterpriseId
     * @return
     */
    public List<TabStoreRange> queryAllBindRangeByEnterpriseId(String enterpriseId);

    /**
     * 获取商户所有绑定列表 搜索
     *
     * @param enterpriseId
     * @param wxEnterpriseId
     * @param search
     * @param pageInfo
     * @return
     */
    public Page<TabStoreRelation> pageStoreRelation(String enterpriseId, String wxEnterpriseId, String search, BasePageInfo pageInfo);

    /**
     * 保存门店的绑定关联关系
     *
     * @param list
     * @return
     */
    public boolean saveStoreRelations(List<TabStoreRelation> list, String optStaffId, int channelCode);

    /**
     * 删除分组id
     *
     * @param enterpriseId
     * @param relationIds
     * @return
     */
    public List<TabStoreRange> queryStoreRangeByRelationId(String enterpriseId, List<String> relationIds);

    /**
     * 列表
     *
     * @param wxEnterpriseId
     * @param enterpriseId
     * @return
     */
    public List<String> listStoreIdByWxEnterpriseId(String wxEnterpriseId, String enterpriseId);

    /**
     * 更新门店名称
     *
     * @param enterpriseId
     * @param storeId
     * @param storeName
     */
    public void updatwStoreName(String enterpriseId, String storeId, String storeName);


    /**
     * 该门店是否存在
     *
     * @param storeId        存储id
     * @param wxEnterpriseId wx企业标识
     * @param enterpriseId   企业标识
     * @return boolean
     * @author mozhu
     * @date 2022-05-30 15:58:50
     */
    boolean isFlagByStoreId(String storeId, String wxEnterpriseId, String enterpriseId);

    /**
     * 查询所有门店分组id
     *
     * @param wxEnterpriseId wx企业标识
     * @param enterpriseId   企业标识
     * @return {@link List }<{@link String }>
     * @author mozhu
     * @date 2022-06-01 10:34:17
     */
    List<String> listStoreGroupIdByWxEnterpriseId(String wxEnterpriseId, String enterpriseId);
    
    List<String> listStoreIdByName( String wxEnterpriseId,  String enterpriseId, String storeName) ;

    public boolean hasStore(String wxEnterpriseId , String enterpriseId, String storeId) ;

}
