package com.yida.data.common.core.entity.card;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 电子学生证-设备管理 Entity
 *
 * @author ccl
 * @date 2021-08-04 14:44:39
 */
@Data
@TableName("edu_student_card")
public class EduStudentCard {

    /**
     *
     */
    @TableId(value = "card_id", type = IdType.AUTO)
    private Long cardId;

    /**
     * 学生id，对应edustudent表主键id
     */
    @TableField("student_id")
    @ApiModelProperty("学生id")
    private Long studentId;

    /**
     * 学生电话号码
     */
    @TableField("student_phone")
    @ApiModelProperty("学生电话号码")
    private String studentPhone;

    /**
     * sim卡号
     */
    @TableField("sim")
    @ApiModelProperty("sim卡号")
    private String sim;

    /**
     * 设备IMEI
     */
    @TableField("imei")
    @ApiModelProperty("设备IMEI")
    private String imei;

    /**
     * 设备型号
     */
    @TableField("mc_type")
    @ApiModelProperty("设备型号")
    private String mcType;

    /**
     * 设备识别id
     */
    @TableField("rfid")
    @ApiModelProperty("设备识别id")
    private String rfid;

    /**
     * 设备类型：①WIRED 有线②WIRELESS无线
     */
    @TableField("equip_type")
    @ApiModelProperty("设备类型：①WIRED 有线②WIRELESS无线")
    private String equipType;

    /**
     * 绑定状态：0：未绑定，1：已绑定
     */
    @TableField("bind_status")
    @ApiModelProperty("绑定状态：0：未绑定，1：已绑定")
    private Integer bindStatus;

    /**
     * 激活状态：0：已激活，1：已激活
     */
    @TableField("activate_status")
    @ApiModelProperty("激活状态：0：已激活，1：已激活")
    private Integer activateStatus;

    /**
     * 使用状态：0：禁用，1：正常
     */
    @TableField("use_status")
    @ApiModelProperty("使用状态：0：禁用，1：正常")
    private Integer useStatus;

    /**
     * 在线状态：0：离线，1：在线
     */
    @TableField("online_status")
    @ApiModelProperty("在线状态：0：离线，1：在线")
    private Integer onlineStatus;

    /**
     * 学校id
     */
    @TableField("school_id")
    @ApiModelProperty("学校id")
    private Long schoolId;

    /**
     * 是否删除，1删除0未删除默认0
     */
    @TableField("del_flag")
    @TableLogic(value = "0", delval = "1")
    @ApiModelProperty("是否删除，1删除0未删除默认0")
    private Integer delFlag;

    /**
     * 创建时间
     */
    @TableField(value = "create_date", fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private LocalDateTime createDate;

    /**
     * 创建人id
     */
    @TableField(value = "create_id", fill = FieldFill.INSERT)
    @ApiModelProperty("创建人id")
    private Long createId;

    /**
     * 修改时间
     */
    @TableField(value = "update_date", fill = FieldFill.UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("修改时间")
    private LocalDateTime updateDate;

    /**
     * 修改人id
     */
    @TableField(value = "update_id", fill = FieldFill.UPDATE)
    @ApiModelProperty("修改人id")
    private Long updateId;

    @ApiModelProperty("激活时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime activateDate;

    @ApiModelProperty("电量")
    private Integer battery;

    @ApiModelProperty("经度")
    private Double lng;

    @ApiModelProperty("纬度")
    private Double lat;

    @ApiModelProperty("定位类型 卫星定位-0, 基站定位-1, WIFI定位-2, 蓝牙定位-3")
    private Integer posType;

    @ApiModelProperty("定位时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime posTime;

    /**
     * 免打扰状态：0：未开启，1：开启
     */
    @TableField(exist = false)
    @ApiModelProperty("免打扰状态：0：未开启，1：开启")
    private Integer disturbStatus;


    public transient static final Map<String, Integer> POS_TYPE = new HashMap<String, Integer>() {{
        put("GPS", 0);
        put("LBS", 1);
        put("WIFI", 2);
        put("BEACON", 3);
    }};
}