package com.usky.sas.service;

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

import java.util.List;

/**
 * USB事件服务接口
 */
public interface SasUsbEventService extends CrudService<SasUsbEvent> {

    /**
     * 新增视频导出防护（USB）模块下的地图，type 固定为 usbalarm(1003)
     *
     * @param request 地图保存参数（type 会被覆盖为 1003）
     * @return 新建地图主键 id
     */
    String addMap(MapSaveRequest request);

    /**
     * 获取视频导出防护（USB）模块的地图导航树形列表（仅 type=1003 的地图）
     */
    List<MapTreeItem> getMapTree();

    /**
     * 获取地图详情（仅当地图 type=1003 视频导出防护时返回，否则返回 null）
     *
     * @param mapId 地图 id
     * @return 地图详情（含背景图 URL、设备点位及设备信息），非 USB 地图返回 null
     */
    MapInfoVo getMapInfo(String mapId);

    /**
     * 修改视频导出防护（USB）模块下的地图，仅允许 type=1003 的地图
     */
    void updateMap(String id, MapSaveRequest request);

    /**
     * 删除视频导出防护（USB）模块下的地图，仅允许 type=1003 的地图
     */
    void deleteMap(String id);
}