package models import "github.com/jinzhu/gorm" // Location holds latitude and longitude. type Location struct { Lat float64 `json:"lat"` Lon float64 `json:"lon"` } // ImportantInfo holds fields that are important for quick access. type SensorData struct { IMEI string `json:"imei"` IMSI string `json:"imsi"` Timestamp int64 `json:"timestamp"` Lat float64 `json:"lat"` Lon float64 `json:"lon"` WifiLoc Location `json:"wifi_location"` CellLoc Location `json:"cell_location"` Temperature float64 `json:"temperature"` // Used to parse incoming json data AccInfo AccelerometerInfo `json:"accelerometerInfo"` // Used to store coordinates of accelerometer to DB AccelerometerInfo } type DeviceInfo struct { gorm.Model RawJSON string `json:"raw_json" gorm:"type:json"` SensorData DeviceID uint ExternalDeviceID string `json:"deviceId"` } type AccelerometerInfo struct { X int64 Y int64 Z int64 } type GeoJSONFeatureCollection struct { Type string `json:"type"` Features []GeoJSONFeature `json:"features"` } type GeoJSONFeature struct { Type string `json:"type"` Geometry GeoJSONGeometry `json:"geometry"` DeviceInfo *DeviceInfo `json:",omitempty"` Properties map[string]interface{} `json:"properties"` } type GeoJSONGeometry struct { Type string `json:"type"` Coordinates []float64 `json:"coordinates"` } func (DeviceInfo) Update() (bool, error) { return false, nil } func (DeviceInfo) Create() (bool, error) { return false, nil } func (DeviceInfo) Delete() (bool, error) { return false, nil }