66 lines
1.6 KiB
Go
66 lines
1.6 KiB
Go
|
|
package models
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"platform/web/core"
|
|||
|
|
"platform/web/globals/orm"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// Edge 节点表
|
|||
|
|
type Edge struct {
|
|||
|
|
core.Model
|
|||
|
|
Type EdgeType `json:"type" gorm:"column:type"` // 节点类型:1-自建
|
|||
|
|
Version int32 `json:"version" gorm:"column:version"` // 节点版本
|
|||
|
|
Mac string `json:"mac" gorm:"column:mac"` // 节点 mac 地址
|
|||
|
|
IP orm.Inet `json:"ip" gorm:"column:ip;not null"` // 节点地址
|
|||
|
|
ISP EdgeISP `json:"isp" gorm:"column:isp"` // 运营商:0-未知,1-电信,2-联通,3-移动
|
|||
|
|
Prov string `json:"prov" gorm:"column:prov"` // 省份
|
|||
|
|
City string `json:"city" gorm:"column:city"` // 城市
|
|||
|
|
Status EdgeStatus `json:"status" gorm:"column:status"` // 节点状态:0-离线,1-正常
|
|||
|
|
RTT int32 `json:"rtt" gorm:"column:rtt"` // 最近平均延迟
|
|||
|
|
Loss int32 `json:"loss" gorm:"column:loss"` // 最近丢包率
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// EdgeType 节点类型枚举
|
|||
|
|
type EdgeType int
|
|||
|
|
|
|||
|
|
const (
|
|||
|
|
EdgeTypeSelfBuilt EdgeType = 1 // 自建
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// EdgeStatus 节点状态枚举
|
|||
|
|
type EdgeStatus int
|
|||
|
|
|
|||
|
|
const (
|
|||
|
|
EdgeStatusOffline EdgeStatus = 0 // 离线
|
|||
|
|
EdgeStatusNormal EdgeStatus = 1 // 正常
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// EdgeISP 运营商枚举
|
|||
|
|
type EdgeISP int
|
|||
|
|
|
|||
|
|
const (
|
|||
|
|
EdgeISPTelecom EdgeISP = 1 // 电信
|
|||
|
|
EdgeISPUnicom EdgeISP = 2 // 联通
|
|||
|
|
EdgeISPMobile EdgeISP = 3 // 移动
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
func (isp *EdgeISP) String() string {
|
|||
|
|
if isp == nil {
|
|||
|
|
return ""
|
|||
|
|
}
|
|||
|
|
switch *isp {
|
|||
|
|
case EdgeISPTelecom:
|
|||
|
|
return "电信"
|
|||
|
|
case EdgeISPUnicom:
|
|||
|
|
return "联通"
|
|||
|
|
case EdgeISPMobile:
|
|||
|
|
return "移动"
|
|||
|
|
default:
|
|||
|
|
return ""
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func ToEdgeISP(i int) EdgeISP {
|
|||
|
|
return EdgeISP(i)
|
|||
|
|
}
|