package com.ruoyi.hezhi.service;

import com.ruoyi.hezhi.domain.TbRegion;

import java.util.List;
import java.util.Map;

/**
 * 行政区域Service接口
 *
 * @author ruoyi
 * @date 2024-10-21
 */
public interface ITbRegionService
{
    /**
     * 查询行政区域
     *
     * @param id 行政区域主键
     * @return 行政区域
     */
    public TbRegion selectTbRegionById(Long id);

    /**
     * 查询行政区域列表
     *
     * @param tbRegion 行政区域
     * @return 行政区域集合
     */
    public List<TbRegion> selectTbRegionList(TbRegion tbRegion);

    /**
     * 查询行政区域列表
     *
     * @param tbRegion 行政区域
     * @return 行政区域集合
     */
    public List<TbRegion> selectTbRegionTreeList(TbRegion tbRegion);

    /**
     * 新增行政区域
     *
     * @param tbRegion 行政区域
     * @return 结果
     */
    public int insertTbRegion(TbRegion tbRegion);

    /**
     * 修改行政区域
     *
     * @param tbRegion 行政区域
     * @return 结果
     */
    public int updateTbRegion(TbRegion tbRegion);

    /**
     * 批量删除行政区域
     *
     * @param ids 需要删除的行政区域主键集合
     * @return 结果
     */
    public int deleteTbRegionByIds(Long[] ids);

    /**
     * 删除行政区域信息
     *
     * @param id 行政区域主键
     * @return 结果
     */
    public int deleteTbRegionById(Long id);

    /**
     * 查询行政区域列表
     *
     * @param params 参数
     * @return 行政区域集合
     */
    public List<TbRegion> getRegionList(Map<String, Object> params);

    /**
     * 行政区域树列表
     *
     * @return 行政区域树列表
     */
    public List<TbRegion> selectTbRegionTreeList();

    /**
     * 树列表
     *
     * @param treeList 行政区域列表
     * @param pid 父级ID
     * @return 行政区域集合
     */
    public List<TbRegion> toTree(List<TbRegion> treeList, Long pid);

    /**
     * 查询行政区域列表省
     *
     * @return 行政区域集合
     */
    public List<TbRegion> selectRegionProvinceList();

    /**
     * 查询行政区域列表省
     *
     * @return 行政区域集合
     */
    public List<TbRegion> selectRegionCityOrAreaList(Integer id);
}
