package com.prolog.rdc.tms.model.entity;

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

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.framework.core.annotation.Column;
import com.prolog.framework.core.annotation.Id;
import com.prolog.framework.core.annotation.Table;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 
 *
 * GPS接口表
 *
 * @className :GpsDataModel
 * @author :fanzw
 * @creationTime :2022/12/29
 * @description :
 *
 * @modifier :fanzw
 * @modifyTime :2022/12/29
 * @reviseRemarks:
 *
 * @version :1.0.0
 *
 */
@Data
@Table("intf_gps_data_hty")
public class GpsDataHtyModel implements Serializable {

	private static final long serialVersionUID = -7332036222318465227L;

	@Id
	@ApiModelProperty(value = "主键ID")
	@Column(value = "id")
	private String id;

	@ApiModelProperty(value = "类型 2车辆")
	@Column(value = "type")
	private Integer type;

	@ApiModelProperty(value = "设备ID")
	@Column(value = "device_id")
	private BigDecimal deviceId;

	@ApiModelProperty(value = "设备编码")
	@Column(value = "device_code")
	private String deviceCode;

	@ApiModelProperty(value = "设备名称  ")
	@Column(value = "device_name")
	private String deviceName;

	@ApiModelProperty(value = "车辆ID")
	@Column(value = "vehicle_id")
	private BigDecimal vehicleId;

	@ApiModelProperty(value = "车辆编码")
	@Column(value = "vehicle_code")
	private String vehicleCode;

	@ApiModelProperty(value = "车牌号")
	@Column(value = "vehicle_plate_number")
	private String vehiclePlateNumber;

	@ApiModelProperty(value = "司机ID")
	@Column(value = "driver_id")
	private BigDecimal driverId;

	@ApiModelProperty(value = "司机编号")
	@Column(value = "driver_code")
	private String driverCode;

	@ApiModelProperty(value = "司机名称")
	@Column(value = "driver_name")
	private String driverName;

	@ApiModelProperty(value = "司机手机号")
	@Column(value = "driver_phone_number")
	private String driverPhoneNumber;

	@ApiModelProperty(value = "经度")
	@Column(value = "longitude")
	private BigDecimal longitude;

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

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

	@ApiModelProperty(value = "定位的高程值(默认0)")
	@Column(value = "location_height")
	private BigDecimal locationHeight;

	@ApiModelProperty(value = "空间参考 默认4326")
	@Column(value = "spatial_reference")
	private String spatialReference;

	@ApiModelProperty(value = "水平速度 默认0")
	@Column(value = "horizontal_velocity")
	private BigDecimal horizontalVelocity;

	@ApiModelProperty(value = "垂直速度 默认0")
	@Column(value = "vertical_velocity")
	private BigDecimal verticalVelocity;

	@ApiModelProperty(value = "车辆当前速度 默认0")
	@Column(value = "current_velocity")
	private BigDecimal currentVelocity;

	@ApiModelProperty(value = "车辆当前的方向 取值为0-360 度之间，没有方向也需要填充0")
	@Column(value = "vehicle_direction")
	private BigDecimal vehicleDirection;

	@ApiModelProperty(value = "定位质量 默认10即可")
	@Column(value = "positioning_quality")
	private String positioningQuality;

	@ApiModelProperty(value = "定位状态 默认1即可")
	@Column(value = "positioning_status")
	private String positioningStatus;

	@ApiModelProperty(value = "数据提供方 公司名称缩写或名称")
	@Column(value = "data_provider")
	private String dataProvider;

	@ApiModelProperty(value = "企业ID")
	@Column(value = "enterprise_id")
	private BigDecimal enterpriseId;

	@ApiModelProperty(value = "企业名称")
	@Column(value = "enterprise_name")
	private String enterpriseName;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "创建时间")
	@Column(value = "createtime")
	private Date createtime;

	@ApiModelProperty(value = "创建人")
	@Column(value = "createperson")
	private String createperson;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "修改时间")
	@Column(value = "updatetime")
	private Date updatetime;

	@ApiModelProperty(value = "修改人")
	@Column(value = "updateperson")
	private String updateperson;

	@ApiModelProperty(value = "N初始 E失败 Y成功")
	@Column(value = "intf_status")
	private String intfStatus;

}
