package com.gyee.wisdom.common.data.timeseries;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Optional;

/**
 * @author songwb<songwb@aliyun.com>
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TsPointData {

    private String tagName;
    private GeneralTsData tsData;

    public TsDataType findDataType() {
        if (tsData.getDoubleValue().isPresent()){
            return TsDataType.DOUBLE;
        }
        else if (tsData.getBooleanValue().isPresent()){
            return TsDataType.BOOLEAN;
        }
        else if (tsData.getLongValue().isPresent()){
            return TsDataType.LONG;
        }

        else if (tsData.getStringValue().isPresent()){
            return TsDataType.STRING;
        }

        else if (tsData.getBlobValue().isPresent()){
            return TsDataType.BLOB;
        }

        else if (tsData.getCoordinateValue().isPresent()){
            return TsDataType.COORDINATE;
        }


        return TsDataType.DOUBLE;
    }
    /**
     * 获取 double 类型值
     * @return
     */
    public double getValue() {
        if (tsData.getDoubleValue().isPresent()) {
            return tsData.getDoubleValue().get();
        } else if (tsData.getBooleanValue().isPresent()) {
            return tsData.getBooleanValue().get() ? 1.0 : 0.0;
        } else if (tsData.getLongValue().isPresent()) {
            return tsData.getLongValue().get();
        }
        return 0.0;
    }
}

