package com.sundot.airport.system.service;

import java.util.List;

import com.sundot.airport.system.domain.BasePosition;
import com.sundot.airport.system.domain.vo.PositionInfoVO;

/**
 * 位置Service接口
 *
 * @author ruoyi
 * @date 2025-07-09
 */
public interface IBasePositionService {
    /**
     * 查询位置
     *
     * @param id 位置主键
     * @return 位置
     */
    public BasePosition selectBasePositionById(Long id);

    /**
     * 查询位置列表
     *
     * @param basePosition 位置
     * @return 位置集合
     */
    public List<BasePosition> selectBasePositionList(BasePosition basePosition);

    /**
     * 新增位置
     *
     * @param basePosition 位置
     * @return 结果
     */
    public int insertBasePosition(BasePosition basePosition);

    /**
     * 修改位置
     *
     * @param basePosition 位置
     * @return 结果
     */
    public int updateBasePosition(BasePosition basePosition);

    /**
     * 批量删除位置
     *
     * @param ids 需要删除的位置主键集合
     * @return 结果
     */
    public int deleteBasePositionByIds(Long[] ids);

    /**
     * 删除位置信息
     *
     * @param id 位置主键
     * @return 结果
     */
    public int deleteBasePositionById(Long id);

    /**
     * 查询位置列表树形结构
     *
     * @param basePosition 位置
     * @return 树结构列表
     */
    public List<BasePosition> selectBasePositionListTree(BasePosition basePosition);

    /**
     * 构建前端所需要树结构
     *
     * @param list 列表
     * @return 树结构列表
     */
    public List<BasePosition> buildTree(List<BasePosition> list);

    /**
     * 查询区域下通道
     *
     * @param regionalCodes 区域code
     * @return
     */
    List<PositionInfoVO> selectChannelsUnderArea(List<String> regionalCodes);
}
