package com.zksy.base.domain;

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.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 终端故障表
 * @TableName terminal_fault
 */
@TableName(value = "terminal_fault", schema = "app_user")
@Data
@ApiModel(value = "终端故障入参", description = "终端故障入参")
public class TerminalFault implements Serializable {

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 故障ID
     */
    @ApiModelProperty(value = "故障ID")
    @TableId(type = IdType.AUTO)
    private Long faultId;

    /**
     * 故障编号（唯一索引，格式：FT+年月日+流水号）
     */
    @ApiModelProperty(value = "故障编号")
    private String faultNo;

    /**
     * 关联终端设备ID
     */
    @ApiModelProperty(value = "关联终端设备ID")
    private String deviceId;

    /**
     * 设备编码
     */
    @ApiModelProperty(value = "设备编码")
    private String deviceCode;

    /**
     * 关联报警ID
     */
    @ApiModelProperty(value = "关联报警ID")
    private String alarmId;

    /**
     * 故障等级：1-严重 2-一般
     */
    @ApiModelProperty(value = "故障等级：1-严重 2-一般")
    private Integer faultLevel;

    /**
     * 故障详细描述
     */
    @ApiModelProperty(value = "故障详细描述")
    private String faultDesc;

    /**
     * 故障来源：1-设备报警 2-人工上报 3-巡检发现
     */
    @ApiModelProperty(value = "故障来源：1-设备报警 2-人工上报 3-巡检发现")
    private Integer faultSource;

    /**
     * 故障状态：1-未处理 2-处理中 3-已修复 4-已返厂 5-已报废
     */
    @ApiModelProperty(value = "故障状态：1-未处理 2-处理中 3-已修复 4-已返厂 5-已报废")
    private Integer faultStatus;

    /**
     * 故障发生时间
     */
    @ApiModelProperty(value = "故障发生时间")
    @JsonFormat(locale = "zh",pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date happenTime;

    /**
     * 处理人ID
     */
    @ApiModelProperty(value = "处理人ID")
    private Long handleUserId;

    /**
     * 处理完成时间
     */
    @ApiModelProperty(value = "处理完成时间")
    @JsonFormat(locale = "zh",pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date handleTime;

    /**
     * 最终处理结果
     */
    @ApiModelProperty(value = "最终处理结果")
    private String handleResult;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(locale = "zh",pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(locale = "zh",pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime;
}