package com.tuoheng.admin.entity.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @User qiujinyang
 * @Description
 * @Date Created by 2022/7/28 13:31
 */
@NoArgsConstructor
@Data
public class AirWeatherVO implements Serializable {

    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "ACD")
    private ACDDTO acd;
    @ApiModelProperty(value = "WTH")
    private WTHDTO wth;
    @ApiModelProperty(value = "TAH")
    private TAHDTO tah;

    @NoArgsConstructor
    @Data
    public static class ACDDTO {
        @ApiModelProperty(value = "parm")
        private ParmDTO parm;
        @ApiModelProperty(value = "mid")
        private Double mid;
        @ApiModelProperty(value = "deviceid")
        private String deviceid;
        @ApiModelProperty(value = "timestamp")
        private Integer timestamp;

        @NoArgsConstructor
        @Data
        public static class ParmDTO {
            @ApiModelProperty(value = "Tmp")
            private Integer tmp;
        }
    }

    @NoArgsConstructor
    @Data
    public static class WTHDTO {
        @ApiModelProperty(value = "parm")
        private ParmDTO parm;
        private ParmNewDTO parmNew;
        @ApiModelProperty(value = "mid")
        private Double mid;
        @ApiModelProperty(value = "deviceid")
        private String deviceid;
        @ApiModelProperty(value = "timestamp")
        private Double timestamp;

        @NoArgsConstructor
        @Data
        public static class ParmDTO {
            @ApiModelProperty(value = "Hum")
            private Integer hum;
            @ApiModelProperty(value = "Rainfull")
            private Integer rainfull;
            @ApiModelProperty(value = "Noise")
            private Integer noise;
            @ApiModelProperty(value = "co2")
            private Integer co2;
            @ApiModelProperty(value = "Lux")
            private Integer lux;
            @ApiModelProperty(value = "RainType")
            private Integer rainType;
            @ApiModelProperty(value = "Tmp")
            private Integer tmp;
            @ApiModelProperty(value = "PM2.5")
            private Integer _$Pm25111;// FIXME check this code
            @ApiModelProperty(value = "Dew")
            private Integer dew;
            @ApiModelProperty(value = "Hpa")
            private Integer hpa;
            @ApiModelProperty(value = "WSPD")
            private Integer wspd;
            @ApiModelProperty(value = "PM10")
            private Integer pm10;
            @ApiModelProperty(value = "WDIR")
            private Integer wdir;
        }

        @NoArgsConstructor
        @Data
        public static class ParmNewDTO {
            private Double hum;
            private Double noise;
            private Double rainfull;
            private Double tmp;
            private String wdirname;
            private Double dew;
            private Double wspd;
            private Double hpa;
            private Double wdir;
            private Double lux;
        }
    }

    @NoArgsConstructor
    @Data
    public static class TAHDTO {
        @ApiModelProperty(value = "parm")
        private ParmDTO parm;
        @ApiModelProperty(value = "mid")
        private Double mid;
        @ApiModelProperty(value = "deviceid")
        private String deviceid;
        @ApiModelProperty(value = "timestamp")
        private Double timestamp;

        @NoArgsConstructor
        @Data
        public static class ParmDTO {
            @ApiModelProperty(value = "湿度")
            private Integer hum;
            @ApiModelProperty(value = "温度")
            private Integer tmp;
        }
    }
}
