package com.fuyuanshen.equipment.domain;

import com.fuyuanshen.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import io.github.linpeilie.annotations.AutoMapping;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serial;

/**
 * 设备告警对象 device_alarm
 *
 * @author Lion Li
 * @date 2025-08-28
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("device_alarm")
public class DeviceAlarm extends TenantEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id")
    private Long id;

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

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

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

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

    /**
     * 内容
     */
    private String content;

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

    /**
     * 经度
     */
    private Double longitude;

    /**
     * 纬度
     */
    private Double latitude;

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

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

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

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

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


    /**
     * 设备IMEI
     * device_imei
     */
    @Schema(title = "设备IMEI")
    @AutoMapping(target = "deviceImei")
    private String deviceImei;

}
