package models import ( "database/sql" "time" "gorm.io/gorm" ) // RemoteServer describes an ActivityPub server // This includes self too type RemoteServer struct { gorm.Model // The software the server is based on (Mastodon+Glitch => Mastodon, Sharkey => Misskey, Akoma => Plemora, etc) ServerType ServerSoftwareType SpecificType string // Specific software name (Sharkey, Iceshrimp, Akoma, etc) Version string Domain string // `gorm:"primaryKey"` // Domain the server exists under. Additional primary key Name string // What the server wants to be known as (usually same as url) Icon *MediaMetadata // The icon used by the server. May be empty IconId sql.NullString // ID of a media file IsSelf bool // Whether this server is yours truly Metadata []RemoteServerMetadata // Metadata a server provides in its nodeinfo LastInteraction time.Time // The last time the server was seen (sucessful outbound request or inbound message) IsDead bool // Whether to consider a server dead and not bother sending anything anymore }