package com.ruoyi.ems.service;

import java.util.List;

import com.ruoyi.ems.domain.Area;
import com.ruoyi.ems.domain.vo.TreeEntity;

/**
 * 服务区Service接口
 *
 * @author ruoyi
 * @date 2024-07-09
 */
public interface IAreaService {
    /**
     * 查询服务区
     *
     * @param id 服务区主键
     * @return 服务区
     */
    Area selectAreaById(Long id);

    /**
     * 查询服务区
     * @param code 区域编码
     * @return 服务区
     */
    Area selectAreaByCode(String code);

    /**
     * 查询服务区列表
     *
     * @param area 服务区
     * @return 服务区集合
     */
    List<Area> selectAreaList(Area area);

    /**
     * 查询区域位置树
     * @param tier 层级
     * @return 区域位置树
     */
    List<TreeEntity> selectAreaTreeList(String tier);

    /**
     * 查询区域位置树byCode
     * @param tier 层级
     * @param code 编码
     * @return 区域位置树
     */
    List<TreeEntity> selectAreaTreeByCode(String tier, String code);

    /**
     * 查询区域位置树by标签
     * @param tier 层级
     * @param code 编码
     * @return 区域位置树
     */
    List<TreeEntity> selectAreaTreeByTag(String tier, String code);

    /**
     * 新增服务区
     *
     * @param area 服务区
     * @return 结果
     */
    int insertArea(Area area);

    /**
     * 修改服务区
     *
     * @param area 服务区
     * @return 结果
     */
    int updateArea(Area area);

    /**
     * 批量删除服务区
     *
     * @param ids 需要删除的服务区主键集合
     * @return 结果
     */
    int deleteAreaByIds(Long[] ids);

    /**
     * 删除服务区信息
     *
     * @param id 服务区主键
     * @return 结果
     */
    int deleteAreaById(Long id);
}
