Files
platform/web/models/edge.go

66 lines
1.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)
}