export interface droneInfo {
  // 飞行器机型主类型
  droneEnumValue: string | number
  // 飞行器机型子类型
  droneSubEnumValue: string | number
}

export interface payloadInfo {
  payloadEnumValue: string | number
  payloadSubEnumValue: string | number
  payloadPositionIndex: string | number
}

export interface missionConfig {
  // 飞向首航点模式
  flyToWaylineMode: string
  // 航线结束动作
  finishAction: string
  // 失控是否继续执行航线
  exitOnRCLost: string
  // 失控动作类型
  executeRCLostAction?: string
  // 安全起飞高度
  takeOffSecurityHeight: string | number
  // 全局航线过渡速度
  globalTransitionalSpeed: string | number
  // 全局返航高度
  globalRTHHeight: string | number
  // 参考起飞点
  takeOffRefPoint?: string
  // 参考起飞点海拔高度
  takeOffRefPointAGLHeight?: string | number
  // 飞行器机型信息
  droneInfo: droneInfo
  // 负载机型信息
  payloadInfo: payloadInfo
}

export interface Placemark {
  // 是否开启标定飞行
  caliFlightEnable?: boolean | number
  // 是否开启高程优化
  elevationOptimizeEnable: boolean | number
  // 是否开启智能摆拍
  smartObliqueEnable: boolean | number
  // 智能摆拍拍摄俯仰角
  smartObliqueGimbalPitch: number
  // 拍照模式（定时或定距
  shootType: string
  // 航线方向
  direction: string | number
  // 测区外扩距离
  margin?: number
  //   重叠率参数
  overlap?: any
  // 全局航线高度（椭球高）
  ellipsoidHeight: number
  // 全局航线高度
  height: number
  // 测区多边形
  Polygon?: any
  // 建图航拍飞行器朝向参数
  mappingHeadingParam?: any
  // 云台俯仰角模式
  gimbalPitchMode?: string
  // 云台俯仰角度
  gimbalPitchAngle?: any
}

export interface payloadParam {
  // 负载挂载位置
  payloadPositionIndex: number
  // 负载对焦模式
  focusMode?: string
  // 负载测光模式
  meteringMode?: string
  // 是否开启畸变矫正
  dewarpingEnable?: boolean | number
  // 激光雷达回波模式
  returnMode?: string
  // 负载采样率
  samplingRate?: number
  // 负载扫描模式
  scanningMode?: number
  // 真彩上色
  modelColoringEnable?: boolean | number
  // 图片格式列表
  imageFormat: string
}

export interface waylineCoordinateSysParam {
  // 经纬度坐标系
  coordinateMode?: string
  // 航点高程参考平面
  heightMode?: string
  // 经纬度与高度数据源
  positioningType?: string
  // 飞行器离被摄面高度（相对地面高）
  globalShootHeight?: string
  // 是否开启仿地飞行
  surfaceFollowModeEnable?: boolean | number
  // 仿地飞行离地高度（相对地面高）
  surfaceRelativeHeight?: number
}

export interface Folder {
  // 预定义模板类型
  templateType: string
  //   模板ID
  templateId: number
  //   全局航线飞行速度
  autoFlightSpeed: number
  //   坐标系参数
  waylineCoordinateSysParam?: waylineCoordinateSysParam
  //   负载设置
  payloadParam?: payloadParam
  //   全局航点类型（全局航点转弯模式）
  globalWaypointTurnMode?: string
  //   全局航段轨迹是否尽量贴合直线
  globalUseStraightLine?: boolean | number
  //   云台俯仰角控制模式
  gimbalPitchMode?: string
  //   全局航线高度（相对起飞点高度）
  globalHeight?: number
  //   全局偏航角模式参数
  globalWaypointHeadingParam?: number
  //   航点信息（包括航点经纬度和高度等）
  Placemark?: Placemark
}
