package com.zksy.manhole.domain;

import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.annotation.IdType;
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 lombok.EqualsAndHashCode;

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

/**
 * 设备基础信息
 * @TableName base_devices
 */
@TableName(value = "equipment_base", schema = "app_user")
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "设备基础信息")
public class BaseDevicesManhole implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "equipment_id", type = IdType.ASSIGN_UUID)
    @ApiModelProperty(value = "主键")
    /**
     * 设备唯一ID（主键）
     */
    private String equipmentId;

    /**
     * 设备编码（唯一标识）
     */
    @ApiModelProperty(value = "设备编码")
    private String equipmentCode;

    /**
     * 设备名称
     */
    @ApiModelProperty(value = "设备名称")
    private String equipmentName;

    /**
     * 设备型号
     */
    @ApiModelProperty(value = "设备型号")
    private String equipmentModel;

    /**
     * 设备规格参数
     */
    @ApiModelProperty(value = "设备规格参数")
    private String equipmentSpec;

    /**
     * 设备制造商
     */
    @ApiModelProperty(value = "设备制造商")
    private String manufacturer;

    /**
     * 设备生产日期
     */
    @ApiModelProperty(value = "设备生产日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//    private LocalDateTime productionDate;
    private Date productionDate;

    /**
     * 设备类别ID（关联equipment_type表）
     */
    @ApiModelProperty(value = "设备类别ID")
    private String equipmentTypeId;

    /**
     * 设备资产价值（元）
     */
    @ApiModelProperty(value = "设备资产价值")
    private Double assetValue;

    /**
     * 预计使用年限（年）
     */
    @ApiModelProperty(value = "预计使用年限")
    private Integer useLife;
    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    private BigDecimal longitude;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    private BigDecimal latitude;

    /**
     * 设备安装位置描述
     */
    @ApiModelProperty(value = "设备安装位置描述")
    private String equipmentLocation;

    /**
     * 设备安装日期
     */
    @ApiModelProperty(value = "设备安装日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private DateTime installTime;

    /**
     * 设备维护人员
     */
    @ApiModelProperty(value = "设备负责人")
    private String maintainer;

    /**
     * 设备维护人员联系方式
     */
    @ApiModelProperty(value = "设备维护人员联系方式")
    private String maintainerPhone;
    /**
     * 设备权属单位
     */
    @ApiModelProperty(value = "设备权属单位")
    private String ownershipUnit;
    /**
     * 备注信息
     */
    @ApiModelProperty(value = "备注信息")
    private String remark;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private DateTime createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private DateTime updateTime;
}