package com.ruoyi.dj.mqtt.domain;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class OSDMessage2 {
    private String tid;
    private String bid;
    private long timestamp;

    private DataField data;

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class DataField {
        private int drc_state;  // DRC 状态
        private int flighttask_prepare_capacity;  // 飞行任务准备容量
        private int flighttask_step_code;  // 飞行任务步骤代码
        private MediaFileDetail media_file_detail;  // 媒体文件上传细节
        private SDR sdr;  // SDR 信息
        private int user_experience_improvement;  // 用户体验改善计划
        private WirelessLink wireless_link;  // 无线链路

        @Data
        public static class MediaFileDetail {
            private int remain_upload;  // 待上传数量
        }

        @Data
        public static class SDR {
            private int down_quality;  // 下行质量
            private float frequency_band;  // 频段
            private int up_quality;  // 上行质量
        }

        @Data
        public static class WirelessLink {
            private float sdr_freq_band;  // SDR 频段
            @JsonProperty("4g_freq_band")
            private float _4g_freq_band;  // 4G 频段
            @JsonProperty("4g_gnd_quality")
            private int _4g_gnd_quality;  // 地端 4G 信号质量
            @JsonProperty("4g_link_state")
            private int _4g_link_state;  // 4G 链路连接状态
            @JsonProperty("4g_quality")
            private int _4g_quality;  // 总体 4G 信号质量
            @JsonProperty("4g_uav_quality")
            private int _4g_uav_quality;  // 天端 4G 信号质量
            private int dongle_number;  // 飞行器上 Dongle 数量
            private int link_workmode;  // 图传链路模式
            private int sdr_link_state;  // SDR 链路连接状态
            private int sdr_quality;  // SDR 信号质量
        }
    }
}
