mirror of
https://github.com/Awuqing/BackupX.git
synced 2026-05-10 17:43:43 +08:00
33 lines
1.3 KiB
Go
33 lines
1.3 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
const (
|
|
NodeStatusOnline = "online"
|
|
NodeStatusOffline = "offline"
|
|
)
|
|
|
|
// Node represents a managed server node in the cluster.
|
|
// The default "local" node is auto-created for single-machine backward compatibility.
|
|
type Node struct {
|
|
ID uint `gorm:"primaryKey" json:"id"`
|
|
Name string `gorm:"size:128;uniqueIndex;not null" json:"name"`
|
|
Hostname string `gorm:"size:255" json:"hostname"`
|
|
IPAddress string `gorm:"column:ip_address;size:64" json:"ipAddress"`
|
|
Token string `gorm:"size:128;uniqueIndex;not null" json:"-"`
|
|
Status string `gorm:"size:20;not null;default:'offline'" json:"status"`
|
|
IsLocal bool `gorm:"not null;default:false" json:"isLocal"`
|
|
OS string `gorm:"size:64" json:"os"`
|
|
Arch string `gorm:"size:32" json:"arch"`
|
|
AgentVer string `gorm:"column:agent_version;size:32" json:"agentVersion"`
|
|
LastSeen time.Time `gorm:"column:last_seen" json:"lastSeen"`
|
|
PrevToken string `gorm:"size:128;index" json:"-"`
|
|
PrevTokenExpires *time.Time `gorm:"column:prev_token_expires" json:"-"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
}
|
|
|
|
func (Node) TableName() string {
|
|
return "nodes"
|
|
}
|