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) }