package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.system.domain.TRegion;
import com.ruoyi.system.domain.TRegionVo;

/**
 * 行政区域Mapper接口
 *
 * @author zhengjie
 * @date 2023-08-15
 */
public interface TRegionMapper {
    /**
     * 查询行政区域
     *
     * @param id 行政区域主键
     * @return 行政区域
     */
    public TRegion selectTRegionById(Integer id);

    /**
     * 查询行政区域
     *
     * @param parentId 行政区域主键
     * @return 行政区域
     */
    public TRegion selectTRegionByParentId(Integer parentId);

    /**
     * 查询行政区域列表
     *
     * @param tRegion 行政区域
     * @return 行政区域集合
     */
    public List<TRegion> selectTRegionList(TRegion tRegion);

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

    /**
     * 查询行政区域列表-市
     *
     * @return 行政区域集合
     */
    public List<TRegionVo> selectTRegionListV2(String province_code);

    /**
     * 查询行政区域列表-区
     *
     * @return 行政区域集合
     */
    public List<TRegionVo> selectTRegionListV3(String city_code);

    /**
     * 查询行政区域列表-办事处
     *
     * @return 行政区域集合
     */
    public List<TRegionVo> selectTRegionListV4(String county_code);

    /**
     * 查询行政区域列表-居委会
     *
     * @return 行政区域集合
     */
    public List<TRegionVo> selectTRegionListV5(String town_code);

    /**
     * 新增行政区域
     *
     * @param tRegion 行政区域
     * @return 结果
     */
    public int insertTRegion(TRegion tRegion);

    /**
     * 修改行政区域
     *
     * @param tRegion 行政区域
     * @return 结果
     */
    public int updateTRegion(TRegion tRegion);

    /**
     * 删除行政区域
     *
     * @param id 行政区域主键
     * @return 结果
     */
    public int deleteTRegionById(Integer id);

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