package com.starry.admin.modules.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.system.module.entity.SysAdministrativeAreaDictInfoEntity;
import com.starry.admin.modules.system.vo.AdministrativeAreaQueryReturnVo;
import java.util.List;

/**
 * 行政区域字典信息Service接口
 *
 * @author admin
 * @since 2024-04-03
 */
public interface ISysAdministrativeAreaDictInfoService extends IService<SysAdministrativeAreaDictInfoEntity> {

    /**
     * 查询行政区域字典信息
     *
     * @param id
     *            行政区域字典信息主键
     * @return 行政区域字典信息
     */
    SysAdministrativeAreaDictInfoEntity selectPlayAdministrativeAreaDictInfoById(String id);

    /**
     * 查询树形接口的区域信息
     *
     * @param level
     *            行政区域等级（1：省级别,2:城市级别:4:区县级别）
     * @return List<AdministrativeAreaQueryReturnVo>
     * @author admin
     * @since 2024/4/10 14:47
     **/
    List<AdministrativeAreaQueryReturnVo> selectTree(String level);

    /**
     * 查询所有行政区域字典信息列表
     *
     * @return 行政区域字典信息集合
     */
    List<SysAdministrativeAreaDictInfoEntity> selectAll();

    /**
     * 查询行政区域字典信息列表
     *
     * @param playAdministrativeAreaDictInfo
     *            行政区域字典信息
     * @return 行政区域字典信息集合
     */
    IPage<SysAdministrativeAreaDictInfoEntity> selectPlayAdministrativeAreaDictInfoByPage(
            SysAdministrativeAreaDictInfoEntity playAdministrativeAreaDictInfo);

    /**
     * 新增行政区域字典信息
     *
     * @param playAdministrativeAreaDictInfo
     *            行政区域字典信息
     * @return 结果
     */
    boolean create(SysAdministrativeAreaDictInfoEntity playAdministrativeAreaDictInfo);

    boolean create(List<SysAdministrativeAreaDictInfoEntity> list);

    /**
     * 修改行政区域字典信息
     *
     * @param playAdministrativeAreaDictInfo
     *            行政区域字典信息
     * @return 结果
     */
    boolean update(SysAdministrativeAreaDictInfoEntity playAdministrativeAreaDictInfo);

    /**
     * 批量删除行政区域字典信息
     *
     * @param ids
     *            需要删除的行政区域字典信息主键集合
     * @return 结果
     */
    int deletePlayAdministrativeAreaDictInfoByIds(String[] ids);

    /**
     * 删除行政区域字典信息信息
     *
     * @param id
     *            行政区域字典信息主键
     * @return 结果
     */
    int deletePlayAdministrativeAreaDictInfoById(String id);
}
