package com.energy.manage.service.domain.client.skf;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

/**
 * 测量DynamicMeasurementsVo
 */
@Getter
@Setter
@NoArgsConstructor
public class DynamicMeasurementsVo {

    //  1：时域幅值 2：频谱幅值 4：频谱相位
//    private Integer includeMeasurements;
    // 测点名称
    private String pointName;
    @JsonProperty("PointID")
    private Integer pointID;
    @JsonProperty("Speed")
    private Double speed;
    @JsonProperty("SpeedBegin")
    private Double speedBegin;
    @JsonProperty("SpeedEnd")
    private Double speedEnd;
    @JsonProperty("SpeedMin")
    private Double speedMin;
    @JsonProperty("SpeedMax")
    private Double speedMax;
    @JsonProperty("SpeedUnits")
    private String speedUnits;
    @JsonProperty("Process")
    private Integer process;
    @JsonProperty("ProcessMin")
    private Integer processMin;
    @JsonProperty("ProcessMax")
    private Integer processMax;
    @JsonProperty("ProcessUnits")
    private String processUnits;
    @JsonProperty("Digital")
    private Integer digital;
    @JsonProperty("NumberOfChannels")
    private Integer numberOfChannels;
    @JsonProperty("SampleRate")
    private Integer sampleRate;
    @JsonProperty("Samples")
    private Integer samples;
    @JsonProperty("EUType")
    private Integer eUType;
    @JsonProperty("EU")
    private String eu;
    @JsonProperty("EUTypeSpectrum")
    private Integer eUTypeSpectrum;
    @JsonProperty("EUSpectrum")
    private Object eUSpectrum;
    @JsonProperty("DetectionType")
    private Integer detectionType;
    @JsonProperty("DetectionName")
    private String detectionName;
    @JsonProperty("WindowType")
    private Integer windowType;
    @JsonProperty("WindowName")
    private String windowName;
    @JsonProperty("StartFrequency")
    private Integer startFrequency;
    @JsonProperty("EndFrequency")
    private Integer endFrequency;
    @JsonProperty("Averages")
    private Integer averages;
    @JsonProperty("AverageType")
    private Integer averageType;
    @JsonProperty("StorageReason")
    private Integer storageReason;
    @JsonProperty("MeasurementComment")
    private String measurementComment;
    @JsonProperty("IncludeMeasurements")
    private Integer includeMeasurements;
    @JsonProperty("Content")
    private Integer content;
    @JsonProperty("Measurements")
    private List<MeasurementsDTO> measurements;
    @JsonProperty("UFF")
    private List<?> uff;
    @JsonProperty("SyncPosition")
    private Integer syncPosition;
    @JsonProperty("IDMeasurement")
    private Integer iDMeasurement;
    @JsonProperty("ReadingTimeUTC")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private String readingTimeUTC;

    @NoArgsConstructor
    @Getter
    @Setter
    public static class MeasurementsDTO {
        @JsonProperty("MeasurementType")
        private Integer measurementType;
        @JsonProperty("Direction")
        private Integer direction;
        @JsonProperty("Values")
        private List<Double> values;
        @JsonProperty("UFF")
        private Object uff;
    }
}
