From 50acf14fe19880fa659002437a445ee50ce2b8a6 Mon Sep 17 00:00:00 2001 From: tdv Date: Fri, 28 Nov 2025 17:42:51 +0200 Subject: [PATCH] added qmqx gorm models for trackers --- server/internal/db/db.go | 2 ++ server/internal/dto/cert.go | 4 +++- server/internal/models/emqx.go | 31 +++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 server/internal/models/emqx.go diff --git a/server/internal/db/db.go b/server/internal/db/db.go index 712830c..fef7b25 100644 --- a/server/internal/db/db.go +++ b/server/internal/db/db.go @@ -23,5 +23,7 @@ func AutoMigrate(db *gorm.DB) error { &models.DeviceCertificate{}, &models.RevokedSerial{}, &models.DeviceConfig{}, + &models.MQTTMsg{}, + &models.EmqxClientEvent{}, ) } diff --git a/server/internal/dto/cert.go b/server/internal/dto/cert.go index 3d0e646..4679976 100644 --- a/server/internal/dto/cert.go +++ b/server/internal/dto/cert.go @@ -19,7 +19,9 @@ type DeviceCertDto struct { } type DeviceCertListDto struct { - Certs []DeviceCertDto `json:"certs"` + Certs []DeviceCertDto `json:"certs"` + Offset int `json:"offset"` + Limit int `json:"limit"` } func MapDeviceCert(c models.DeviceCertificate) DeviceCertDto { diff --git a/server/internal/models/emqx.go b/server/internal/models/emqx.go new file mode 100644 index 0000000..911b2ed --- /dev/null +++ b/server/internal/models/emqx.go @@ -0,0 +1,31 @@ +package models + +import "time" + +// MQTTMsg maps to table t_mqtt_msg in emqx_data +type MQTTMsg struct { + ID uint `gorm:"primaryKey;column:id"` + MsgID string `gorm:"column:msgid;type:varchar(64)"` + Sender string `gorm:"column:sender;type:varchar(64)"` + Topic string `gorm:"column:topic;type:varchar(255)"` + QoS int `gorm:"column:qos"` + Retain int `gorm:"column:retain"` + Payload string `gorm:"column:payload;type:text"` + Arrived time.Time `gorm:"column:arrived"` +} + +func (MQTTMsg) TableName() string { + return "t_mqtt_msg" +} + +// EmqxClientEvent maps to table emqx_client_events in emqx_data +type EmqxClientEvent struct { + ID uint `gorm:"primaryKey;column:id"` + ClientID string `gorm:"column:clientid;type:varchar(255)"` + Event string `gorm:"column:event;type:varchar(255)"` + CreatedAt time.Time `gorm:"column:created_at;autoCreateTime"` +} + +func (EmqxClientEvent) TableName() string { + return "emqx_client_events" +}