package com.casic.missiles.modular.system.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Digits;
import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 集中器信息表
 * </p>
 *
 * @author stylefeng123
 * @since 2019-06-03
 */
@TableName("bus_concentrator")
@Data
public class BusConcentrator extends Model<BusConcentrator> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "ID", type = IdType.ID_WORKER)
    private Long id;
    /**
     * 集中器编码
     */
    @NotEmpty(message = "集中器编码不能为空")
    @TableField("CONCENCODE")
    private String concencode;
    /**
     * SIM卡号
     */
    @NotEmpty
    @Digits(integer = 14,fraction=0,message = "SIM卡号为14位")
    @TableField("SIMID")
    private String simid;
    /**
     * 部门
     */
    @TableField("DEPTID")
    private Long deptid;
    /**
     * 集中器位置
     */
    @TableField("POSITION")
    private String position;
    /**
     * 纬度
     */
//    @Digits(integer = 3,fraction = 14,message = "经度必须为正数且最多14位小数")
    @TableField("LAT")
    private String lat;
    /**
     * 经度
     */
//    @Digits(integer = 3,fraction = 14,message = "纬度必须为正数且最多14位小数")
    @TableField("LNG")
    private String lng;
    /**
     * 百度地图纬度
     */
    @TableField("LAT_BAIDU")
    private String latBaidu;
    /**
     * 百度地图经度
     */
    @TableField("LNG_BAIDU")
    private String lngBaidu;
    /**
     * 高德地图纬度
     */
    @TableField("LAT_GAODE")
    private String latGaode;
    /**
     * 高德地图经度
     */
    @TableField("LNG_GAODE")
    private String lngGaode;
    /**
     * 照片路径
     */
    @TableField("PHOTOS")
    private String photos;
    /**
     * 状态
     */
    @TableField("STATUS")
    private String status;
    /**
     * 最后上传时间
     */
    @TableField("LASTTIME")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date lasttime;
    /**
     * 是否有效
     */
    @TableLogic
    @TableField("VALID")
    private String valid;
    /**
     * 启用时间
     */
    @TableField("SETUPDATE")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date setupdate;
    /**
     * 时间戳
     */
    @TableField("TS")
    private Date ts;

    @TableField(exist = false)
    private int devices;
    @TableField(exist = false)
    private String statusName;
    @TableField(exist = false)
    private String deptName;
    @TableField(exist = false)
    private String lasttimeFormat;
    @TableField(exist = false)
    private String setupdateFormat;
    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "BusConcentrator{" +
                "id=" + id +
                ", concencode=" + concencode +
                ", simid=" + simid +
                ", deptid=" + deptid +
                ", position=" + position +
                ", lat=" + lat +
                ", lng=" + lng +
                ", latBaidu=" + latBaidu +
                ", lngBaidu=" + lngBaidu +
                ", latGaode=" + latGaode +
                ", lngGaode=" + lngGaode +
                ", photo=" + photos +
                ", status=" + status +
                ", lasttime=" + lasttime +
                ", valid=" + valid +
                ", ts=" + ts +
                "}";
    }
}
