package com.ylx.massage.domain;

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.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

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

/**
 * 地理围栏
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("t_geo_fence")
@ApiModel(value = "TGeoFence", description = "地理围栏")
public class TGeoFence implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 围栏ID。
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty("围栏ID")
    private Long id;

    /**
     * 城市编码。
     */
    @TableField("city_code")
    @ApiModelProperty("城市编码")
    private String cityCode;

    /**
     * 城市名称。
     */
    @TableField("city_name")
    @ApiModelProperty("城市名称")
    private String cityName;

    /**
     * 围栏名称。
     */
    @TableField("fence_name")
    @ApiModelProperty("围栏名称")
    private String fenceName;

    /**
     * 围栏介绍。
     */
    @TableField("fence_intro")
    @ApiModelProperty("围栏介绍")
    private String fenceIntro;

    /**
     * 地图搜索或定位地址。
     */
    @TableField("address")
    @ApiModelProperty("地图搜索或定位地址")
    private String address;

    /**
     * 围栏中心点经度。
     */
    @TableField("longitude")
    @ApiModelProperty("围栏中心点经度")
    private BigDecimal longitude;

    /**
     * 围栏中心点纬度。
     */
    @TableField("latitude")
    @ApiModelProperty("围栏中心点纬度")
    private BigDecimal latitude;

    /**
     * 围栏半径，单位：KM。
     */
    @TableField("radius_km")
    @ApiModelProperty("围栏半径，单位：KM")
    private BigDecimal radiusKm;

    /**
     * 风险等级：1-低风险，2-中风险，3-高风险。
     */
    @TableField("risk_level")
    @ApiModelProperty("风险等级：1-低风险，2-中风险，3-高风险")
    private Integer riskLevel;

    /**
     * 创建时间。
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("create_time")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 更新时间。
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("update_time")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /**
     * 是否删除：0-否，1-是。
     */
    @TableLogic
    @TableField("is_delete")
    @ApiModelProperty("是否删除：0-否，1-是")
    private Integer isDelete;
}
