package com.fuyuanshen.equipment.domain.bo;

import com.fuyuanshen.common.core.validate.EditGroup;
import com.fuyuanshen.common.mybatis.core.domain.BaseEntity;
import com.fuyuanshen.common.tenant.core.TenantEntity;
import com.fuyuanshen.equipment.domain.DeviceAlarm;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 设备告警业务对象 device_alarm
 *
 * @author Lion Li
 * @date 2025-08-28
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DeviceAlarm.class, reverseConvertGenerate = false)
public class DeviceAlarmBo extends TenantEntity {

    /**
     * ID
     */
    @NotNull(message = "ID不能为空", groups = {EditGroup.class})
    private Long id;

    /**
     * 设备ID
     */
    private Long deviceId;

    /**
     * 报警事项
     * device_action
     * 0-强制报警，1-撞击闯入，2-自动报警，3-电子围栏告警
     */
    private Integer deviceAction;

    /**
     * 设备名称
     */
    private String deviceName;

    /**
     * 设备MAC
     * device_mac
     */
    private String deviceMac;

    /**
     * 设备IMEI
     * device_imei
     */
    private String deviceImei;

    /**
     * 数据来源
     */
    private String dataSource;

    /**
     * 内容（报警信息）
     */
    private String content;

    /**
     * 设备类型
     * device_type
     */
    private Long deviceType;

    /**
     * 经度
     */
    private Long longitude;

    /**
     * 纬度
     */
    private Long latitude;

    /**
     * 报警位置
     */
    private String location;

    /**
     * 报警开始时间
     */
    private Date startTime;

    /**
     * 报警结束时间
     */
    private Date finishTime;

    /**
     * 报警持续时间
     */
    private String durationTime;

    /**
     * 报警查询时间
     */
    private String queryTime1;
    private String queryTime2;

    /**
     * 0已处理，1未处理
     */
    private Integer treatmentState;

    /**
     * 告警状态，0 解除告警， 1 告警中
     */
    private Integer alarmState;

}
