diff --git a/pkg/models/client.go b/pkg/models/client.go
new file mode 100644
index 0000000..54377a6
--- /dev/null
+++ b/pkg/models/client.go
@@ -0,0 +1,31 @@
+// Sofaraum server is the server which collects the statistics
+// for the sofaraum-heatmap application.
+// Copyright 2018 K.Langenberg and contributors. All rights reserved.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+package models
+
+type Client struct {
+ ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
+ Name string `xorm:"varchar(250)" json:"name"`
+ PublicKey string `xorm:"varchar(250)" json:"public_key"`
+
+ Created int64 `xorm:"created" json:"created"`
+ Updated int64 `xorm:"updated" json:"updated"`
+}
+
+func (Client) TableName() string {
+ return "clients"
+}
diff --git a/pkg/models/models.go b/pkg/models/models.go
index c3a391b..8c351cd 100644
--- a/pkg/models/models.go
+++ b/pkg/models/models.go
@@ -58,7 +58,12 @@ func getEngine() (*xorm.Engine, error) {
}
func init() {
- tables = append(tables)
+ tables = append(tables,
+ new(User),
+ new(Client),
+ new(Room),
+ new(Statistics),
+ )
}
// SetEngine sets the xorm.Engine
diff --git a/pkg/models/room.go b/pkg/models/room.go
new file mode 100644
index 0000000..c618989
--- /dev/null
+++ b/pkg/models/room.go
@@ -0,0 +1,30 @@
+// Sofaraum server is the server which collects the statistics
+// for the sofaraum-heatmap application.
+// Copyright 2018 K.Langenberg and contributors. All rights reserved.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+package models
+
+type Room struct {
+ ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
+ Name string `xorm:"varchar(250)" json:"name"`
+
+ Created int64 `xorm:"created" json:"created"`
+ Updated int64 `xorm:"updated" json:"updated"`
+}
+
+func (Room) TableName() string {
+ return "rooms"
+}
diff --git a/pkg/models/statistics.go b/pkg/models/statistics.go
new file mode 100644
index 0000000..6516497
--- /dev/null
+++ b/pkg/models/statistics.go
@@ -0,0 +1,30 @@
+// Sofaraum server is the server which collects the statistics
+// for the sofaraum-heatmap application.
+// Copyright 2018 K.Langenberg and contributors. All rights reserved.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+package models
+
+type Statistics struct {
+ ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
+ Count int64 `xorm:"int(11)" json:"count"`
+ ClientID int64 `xorm:"int(11)" json:"-"`
+ RoomID int64 `xorm:"int(11)" json:"-"`
+
+ Room Room `xorm:"-"`
+ Client Client `xorm:"-"`
+
+ Created int64 `xorm:"created" json:"created"`
+}
diff --git a/structure.md b/structure.md
new file mode 100644
index 0000000..4de27de
--- /dev/null
+++ b/structure.md
@@ -0,0 +1,24 @@
+# .
+
+#### Structs
+
+* Users (Admins)
+ * Standard...
+* Rooms
+ * ID
+ * Name
+* Clients
+ * ID
+ * Name
+ * Pubkey
+* Stats
+ * ID
+ * Count
+ * ClientID
+ * RoomID
+
+Client signiert seinen Request mit seinem Privaten Schlüssel und der Server verifiziert das dann.
+Mit ed25519
+
+Ein neuer Client wird registriert, indem er seinen pubkey mit name an den Server schickt
+(hinter Authentifizierung).
\ No newline at end of file