package com.gci.boot.modules.video.service;

import com.gci.boot.common.vo.Result;
import com.gci.boot.modules.video.vo.CutVideoListPageVO;
import com.gci.boot.modules.video.vo.ResultDeviceVO;
import com.gci.boot.modules.video.vo.VideoDeviceVO;
import com.gci.boot.modules.video.vo.VideoPlayVO;

import java.util.List;

public interface IVideoService {

    /**
     * 获取视频云平台token
     * @return
     */
    String getVedioToken();

    /**
     * 获取视频云平台所有的车辆列表
     */
    List<VideoDeviceVO> getVideoDeviceList();

    /**
     * 获取视频云平台设备
     */
    VideoDeviceVO getVideoDevice(String plateNo);

    /**
     * 获取设备视频云平台实时播放视频
     */
    VideoPlayVO getRealPlay(String simNo, Integer channelNo);

    /**
     * 获取设备视频云平台历史回放
     */
    VideoPlayVO getPlayBack(String simNo, Integer channelNo,String startTime, String endTime);

    /**
     * 视频云平台文件查询（同步返回）
     */
    Object getFilesAsync(String simNo, Integer channelNo,String startTime, String endTime);

    /**
     * 获取设备列表--树形分层-每一层单独调用接口获取-->1项目-->2车辆品牌-->3车牌-->通道
     * @param projectId
     * @param id
     * @param layer
     * @return
     */
    List<ResultDeviceVO> getDeviceList(String projectId,String id,Integer layer);

    /**
     * 查询视频车列表-->3车牌
     * @param plateNumber
     * @return
     */
    List<ResultDeviceVO> queryDeviceList(String plateNumber);

    /**
     * 视频云平台视频剪辑
     */
    int cutVideo(String sessionId,String startTime, String endTime);

    /**
     * 裁剪视频任务信息列表
     */
    CutVideoListPageVO getCutVideoList(int pageNo, int pageSize, String startTime, String endTime);

}
