package com.ruoyi.system.iot.domain;

import com.ruoyi.ss.device.domain.enums.DeviceOutageWay;
import lombok.Builder;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 设备传来的数据
 * @author qzz
 * 2024/3/20
 */
@Data
@Builder
public class IotDeviceInfo {
    private String mac;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date at;    // 时间

    private BigDecimal v;   // 电压
    private BigDecimal p;   // 功率（瓦）
    private BigDecimal a;   // 电流
    private BigDecimal w;   // 总用电量（度）
    private String s;   // 开关状态，0不通电，1闭合通电
    private BigDecimal m;   // 剩余电量（度）
    private String set; // 开关设置状态
    private BigDecimal time;   // 剩余时间（秒）
    private String model;   // 型号
    private String wifi;    // WIFI
    private String version; // 版本号
    private BigDecimal vxs; // 电压系数

    public static IotDeviceInfo newDefaultInstance() {
        return IotDeviceInfo.builder()
                .v(BigDecimal.ZERO)
                .p(BigDecimal.ZERO)
                .a(BigDecimal.ZERO)
                .w(BigDecimal.ZERO)
                .s("0")
                .m(BigDecimal.ZERO)
                .set(DeviceOutageWay.IMMEDIATE.getValue())
                .time(BigDecimal.ZERO)
                .model(null)
                .version(null)
                .vxs(BigDecimal.ONE)
                .build();
    }

}
