package com.njcn.csharmonic.pojo.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 
 * Description:
 * Date: 2023/9/4  15:15【需求编号】
 *
 * @author clam
 * @version V1.0.0
 */
@Data
@NoArgsConstructor
@TableName(value = "cs_event")
public class CsEventPO extends BaseEntity {
    /**
     * id
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 监测点id
     */
    @TableField(value = "line_id")
    private String lineId;

    /**
     * 装置id
     */
    @TableField(value = "device_id")
    private String deviceId;

    /**
     * 事件时间
     */
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "start_time")
    private LocalDateTime startTime;

    /**
     * 事件类型
     */
    @TableField(value = "tag")
    private String tag;

    /**
     * 暂态事件波形文件路
     */
    @TableField(value = "wave_path")
    private String wavePath;

    /**
     * 瞬时波形图，存在多张的情况
     */
    @TableField(value = "instant_pics")
    private String instantPics;


    /**
     * RMS波形图，存在多张的情况
     */
    @TableField(value = "rms_pics")
    private String rmsPics;


    /**
     * 事件类型(0:暂态事件1:稳态事件 2:设备事
     * 件)
     */
    @TableField(value = "type")
    private Integer type;

    /**
     * 逻辑子设备id
     * 电能质量设备是监测点、治理设备是各个模块
     */
    @TableField(value = "cl_did")
    private Integer clDid;

    /**
     * 事件等级(1:Ⅰ级 2:Ⅱ级 3:Ⅲ级)
     */
    @TableField(value = "level")
    private Integer level;

    /**
     * 发生位置 grid:电网侧，load:负载侧
     */
    @TableField(value = "location")
    private String location;

    /**
     * 流程信息（用于数据控制 1:设备登记，2：功能调试，3：出厂调试 4：设备投运)
     */
    @TableField(value = "process")
    private Integer process;

    /**
     * 告警故障编码（一般显示为Hex）
     */
    @TableField(value = "code")
    private String code;

    /**
     * 持续时间
     */
    @TableField(value = "persist_time")
    private Double persistTime;

    /**
     * 暂降幅值
     */
    @TableField(value = "amplitude")
    private Double amplitude;

    /**
     * 相别
     */
    @TableField(value = "phase")
    private String phase;

    /**
     * 暂降原因
     */
    @TableField(value = "advance_reason")
    private String advanceReason;

    /**
     * 暂降类型
     */
    @TableField(value = "advance_type")
    private String advanceType;

    /**
     * 暂态事件落点(A区/B区/C区/D区;解析失败或未匹配返回 null)
     */
    @TableField(value = "land_point")
    private String landPoint;

    /**
     * 暂降源与监测位置关系 0-未知、1-上游、2-下游
     */
    @TableField(value = "sag_source")
    private String sagSource;

    /**
     * 暂降严重度
     */
    @TableField(value = "severity")
    private Double severity;
}