package vip.xiaonuo.coldchain.modular.app.param;

/**
 * @author jackzhou
 * @version 1.0
 * @project jfcloud-coldchain
 * @description
 * @date 2024/11/17 22:30:15
 */

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;

import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class AppDeviceUpdateParam {
    @Schema(description = "监控点位编号")
    @NotBlank(message = "监控点位编号")
    private String monitorTargetRegionId;

    @Schema(description = "监控点位名称")
    @NotBlank(message = "监控点位名称")
    private String name;
    /**
     * 温度报警上限 temperature humidity co2
     */
    @Schema(description = "温度报警上限")
    @JsonSerialize(using = FloatNullToDashSerializer.class)
    private Float temperatureUp;
    /**
     * 温度报警下限
     */
    @Schema(description = "温度报警下限")
    @JsonSerialize(using = FloatNullToDashSerializer.class)
    private Float temperatureDown;

    /**
     * 湿度报警上限 temperature humidity co2
     */

    @Schema(description = "湿度报警上限")
    @JsonSerialize(using = FloatNullToDashSerializer.class)
    private Float humidityUp;
    /**
     * 湿度报警下限
     */
    @Schema(description = "湿度报警下限")
    @JsonSerialize(using = FloatNullToDashSerializer.class)
    private Float humidityDown;

    /**
     * 二氧化碳报警上限 temperature humidity co2
     */
    @Schema(description = "二氧化碳报警上限")
    @JsonSerialize(using = FloatNullToDashSerializer.class)
    private Float co2Up;
    /**
     * 二氧化碳报警下限
     */
    @Schema(description = "二氧化碳报警下限")
    @JsonSerialize(using = FloatNullToDashSerializer.class)
    private Float co2Down;

    @Schema(description = "勿扰开始时间")
    private String ignoreStartTime;

    @Schema(description = "勿扰结束时间")
    private String ignoreEndTime;

    /**
     * 告警接收人，存储告警通知的接收用户信息
     */
    @Schema(description = "告警接收人，存储告警通知的接收用户信息")
    private List<SensorAlarmUser> alarmUsers;

    /**
     * 设备下线预警
     */
    @Schema(description = "设备下线预警")
    private Boolean deviceOfflineAlarm;

}
