package cn.ey.biz.module.system.service.codeblock;

import cn.ey.biz.module.system.api.codeblock.dto.CodeBlockWideTableReqDTO;
import cn.ey.biz.module.system.controller.admin.codeblock.vo.CodeBlockPageReqVO;
import cn.ey.biz.module.system.controller.admin.codeblock.vo.CodeBlockTreeValueVO;
import cn.ey.biz.module.system.controller.admin.codeblock.vo.CodeBlockUserGpnVO;
import cn.ey.biz.module.system.controller.admin.codeblock.vo.CodeBlockWideTableVO;
import cn.ey.biz.module.system.controller.engagement.code.vo.EngagementCodeRuleReqVOList;
import cn.ey.biz.module.system.dal.dataobject.codeblock.CodeBlockDO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.Collection;
import java.util.List;

public interface CodeBlockWideService {

    CodeBlockWideTableVO queryCountryRegion(CodeBlockWideTableReqDTO codeBlockWideTableReq);

    CodeBlockWideTableVO queryCountryRegionForBack(EngagementCodeRuleReqVOList reqVOList);

    IPage<CodeBlockDO> getDictDataPage(CodeBlockPageReqVO reqVO);

    List<CodeBlockUserGpnVO> getCodeblockGpn(String app);

    List<CodeBlockTreeValueVO> treeCodeList();
    List<CodeBlockTreeValueVO> treeCityCodes();

    List<CodeBlockTreeValueVO> getBusinessTreeList();

    List<CodeBlockTreeValueVO> getBusinessTreeCityCodeList();


    List<CodeBlockDO> getCodeBlockListByGpn(String app,String gpn,String configType);

    /**
     * 根据codeblock获取详情
     * @param codeBlocks
     * @return
     */
    List<CodeBlockDO> getCodeBlockDetailList(Collection<String> codeBlocks);

    /**
     * 根据codeBlock查询gpn
     * @param app
     * @param codeBlock
     * @param configType
     * @return
     */
    List<String>  getGpnListByCodeblock(String app,String codeBlock,String configType);


}
