package com.usky.sas.service;

import com.usky.common.mybatis.core.CrudService;
import com.usky.sas.domain.SasPatrolEvent;
import com.usky.sas.service.vo.MapSaveRequest;
import com.usky.sas.service.vo.MapTreeItem;
import com.usky.sas.service.vo.MapInfoVo;

import java.util.List;

/**
 * 实时电子巡检事件服务接口
 */
public interface SasPatrolEventService extends CrudService<SasPatrolEvent> {

    /**
     * 新增实时电子巡检模块下的地图，type 固定为 patrol(1008)
     *
     * @param request 地图保存参数（type 会被覆盖为 1008）
     * @return 新建地图主键 id
     */
    String addMap(MapSaveRequest request);

    /**
     * 获取实时电子巡检模块的地图导航树形列表（仅 type=1008 的地图）
     */
    List<MapTreeItem> getMapTree();

    /**
     * 获取地图详情（仅当地图 type=1008 实时电子巡检时返回，否则返回 null）
     *
     * @param mapId 地图 id
     * @return 地图详情（含背景图 URL、设备点位及设备信息），非巡检地图返回 null
     */
    MapInfoVo getMapInfo(String mapId);

    /**
     * 修改实时电子巡检模块下的地图，仅允许 type=1008 的地图
     */
    void updateMap(String id, MapSaveRequest request);

    /**
     * 删除实时电子巡检模块下的地图，仅允许 type=1008 的地图
     */
    void deleteMap(String id);
}