33 lines
1.2 KiB
Go
33 lines
1.2 KiB
Go
package models
|
|
|
|
import (
|
|
"github.com/engigu/baihu-panel/internal/constant"
|
|
)
|
|
|
|
// NodeMetrics 表示互联节点的性能指标,使用 JSON 存储
|
|
type NodeMetrics struct {
|
|
CPUPercent float64 `json:"cpu_percent"`
|
|
MemPercent float64 `json:"mem_percent"`
|
|
DiskPercent float64 `json:"disk_percent"`
|
|
TxBytes uint64 `json:"tx_bytes,omitempty"`
|
|
RxBytes uint64 `json:"rx_bytes,omitempty"`
|
|
}
|
|
|
|
// InterconnectNode represents a connected remote panel
|
|
type InterconnectNode struct {
|
|
ID string `json:"id" gorm:"primaryKey;size:20"`
|
|
Name string `json:"name" gorm:"size:255;not null"`
|
|
URL string `json:"url" gorm:"size:255;not null"`
|
|
Token string `json:"token" gorm:"size:255"`
|
|
Remark string `json:"remark" gorm:"size:500"`
|
|
CreatedAt LocalTime `json:"created_at"`
|
|
UpdatedAt LocalTime `json:"updated_at"`
|
|
Status string `json:"status" gorm:"size:50"` // online / offline
|
|
Metrics NodeMetrics `json:"metrics" gorm:"serializer:json"`
|
|
LastHeartbeatAt *LocalTime `json:"last_heartbeat_at"`
|
|
}
|
|
|
|
func (InterconnectNode) TableName() string {
|
|
return constant.TablePrefix + "interconnect_nodes"
|
|
}
|