package com.ruoyi.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
import java.util.StringJoiner;

/**
 * @ClassName: AMapFenceVo
 * @Author: 于学智
 * @Description: 返回给UI的围栏信息
 * @CreateDate: 2023/9/15 14:31
 * @Version: 1.0
 * @E-mail:18722650553@139.com
 * @Link:https://github.com/18722650553
 */
public class AMapFenceVo implements Serializable {
    /**
     * 围栏id
     */
    private Long id;

    /**
     * 高德key 用户在高德地图官网申请Web服务API类型Key
     */
    private String key;

    /**
     * 服务唯一编号 sid为猎鹰service唯一编号
     */
    private String sid;

    /**
     * 高德围栏服务的唯一ID
     */
    private String gfid;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 设备表id
     */
    private Long deviceId;

    /**
     * 围栏名称 在同一个 sid 下不可重复，不可为空。
     */
    private String name;

    /**
     * 开始时间
     */
    private Long startTime;

    /**
     * 结束时间
     */
    private Long endTime;

    /**
     * 围栏状态：（0：关闭 1：开启）
     */
    private Integer state;

    /**
     * 围栏开启状态（0：默认 1：禁止离开 2：禁止进入）
     */
    private Integer type;

    /**
     * 描述
     */
    private String desc;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getSid() {
        return sid;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

    public String getGfid() {
        return gfid;
    }

    public void setGfid(String gfid) {
        this.gfid = gfid;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(Long deviceId) {
        this.deviceId = deviceId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getStartTime() {
        return startTime;
    }

    public void setStartTime(Long startTime) {
        this.startTime = startTime;
    }

    public Long getEndTime() {
        return endTime;
    }

    public void setEndTime(Long endTime) {
        this.endTime = endTime;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    @Override
    public String toString() {
        return new StringJoiner(", ", AMapFenceVo.class.getSimpleName() + "[", "]")
                .add("id=" + id)
                .add("key='" + key + "'")
                .add("sid='" + sid + "'")
                .add("gfid='" + gfid + "'")
                .add("userId=" + userId)
                .add("deviceId=" + deviceId)
                .add("name='" + name + "'")
                .add("startTime=" + startTime)
                .add("endTime=" + endTime)
                .add("state=" + state)
                .add("type=" + type)
                .add("desc='" + desc + "'")
                .toString();
    }
}
