forked from SSU-NC/toiot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
node.go
37 lines (31 loc) · 893 Bytes
/
node.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package model
import "github.com/rs/xid"
type Node struct {
UUID string `json:"uuid" gorm:"primary_key;type:char(20);not null;"`
Name string `json:"name" gorm:"type:varchar(32);unique;not null"`
Group string `json:"location" gorm:"type:varchar(64)"`
LocLat float64 `json:"lat"`
LocLon float64 `json:"lon"`
SinkID uint `json:"sink_id" gorm:"not null"`
Sensors []Sensor `json:"sensors" gorm:"foreignkey:UUID"`
}
func NewNode(name, grp string, lat, lon float64, sinkID uint) Node {
return Node{
UUID: xid.New().String(),
Name: name,
Group: grp,
LocLat: lat,
LocLon: lon,
SinkID: sinkID,
}
}
func (Node) TableName() string {
return "nodes"
}
type NodeSensor struct {
NodeUUID string `gorm:"primary_key;type:char(20)"`
SensorUUID string `gorm:"primary_key;type:char(20)"`
}
func (NodeSensor) TableName() string {
return "node_sensors"
}