package com.multictrl.modules.business.service;

import cn.hutool.json.JSONObject;
import com.multictrl.common.page.PageData;
import com.multictrl.common.service.CrudService;
import com.multictrl.modules.business.dto.FlightTaskDTO;
import com.multictrl.modules.business.dto.MediaFileDTO;
import com.multictrl.modules.business.entity.FlightTaskEntity;
import com.multictrl.modules.business.entity.SrsRecordEntity;
import com.multictrl.modules.business.influxdb.UavReport;

import java.util.List;
import java.util.Map;

/**
 * 飞行架次
 *
 * @author Sdy
 * @since 1.0.0 2026-05-02
 */
public interface FlightTaskService extends CrudService<FlightTaskEntity, FlightTaskDTO> {

    //分页列表
    PageData<FlightTaskDTO> pageList(Map<String, Object> params);

    //新增架次信息
    void addRouteTask(String taskId, String dockSn, Long routeId);//航线任务

    void addTakeoffTask(String taskId, String dockSn);//一键起飞任务

    void addJobRouteTask(String taskId, Long jobId);//计划飞行任务

    //更新架次完成信息
    void updateTaskComplete(String dockSn);

    //更新架次开始信息
    void updateTaskStart(String dockSn);

    //获取飞行轨迹
    List<JSONObject> getFlightTrack(String taskId);

    //获取飞行日志
    List<JSONObject> getFlightLog(String taskId);

    //获取架次媒体
    List<MediaFileDTO> getTaskMedia(String taskId);

    //飞行视频
    List<SrsRecordEntity> getFlightVideo(String taskId);

    //获取上一条任务
    FlightTaskDTO getPreviousTask(String taskId, String dockSn);
}