2021-05-09 12:06:06 +00:00
|
|
|
package gtsmodel
|
|
|
|
|
|
|
|
import "time"
|
|
|
|
|
|
|
|
// Instance represents a federated instance, either local or remote.
|
|
|
|
type Instance struct {
|
|
|
|
// ID of this instance in the database
|
2021-08-25 13:34:33 +00:00
|
|
|
ID string `bun:"type:CHAR(26),pk,notnull,unique"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// Instance domain eg example.org
|
2021-08-25 13:34:33 +00:00
|
|
|
Domain string `bun:",pk,notnull,unique"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// Title of this instance as it would like to be displayed.
|
2021-08-26 09:28:16 +00:00
|
|
|
Title string `bun:",nullzero"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// base URI of this instance eg https://example.org
|
2021-08-25 13:34:33 +00:00
|
|
|
URI string `bun:",notnull,unique"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// When was this instance created in the db?
|
2021-08-25 13:34:33 +00:00
|
|
|
CreatedAt time.Time `bun:",nullzero,notnull,default:current_timestamp"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// When was this instance last updated in the db?
|
2021-08-25 13:34:33 +00:00
|
|
|
UpdatedAt time.Time `bun:",nullzero,notnull,default:current_timestamp"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// When was this instance suspended, if at all?
|
2021-08-25 13:34:33 +00:00
|
|
|
SuspendedAt time.Time `bun:",nullzero"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// ID of any existing domain block for this instance in the database
|
2021-08-25 13:34:33 +00:00
|
|
|
DomainBlockID string `bun:"type:CHAR(26),nullzero"`
|
|
|
|
DomainBlock *DomainBlock `bun:"rel:belongs-to"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// Short description of this instance
|
2021-08-26 09:28:16 +00:00
|
|
|
ShortDescription string `bun:",nullzero"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// Longer description of this instance
|
2021-08-26 09:28:16 +00:00
|
|
|
Description string `bun:",nullzero"`
|
2021-06-23 14:35:57 +00:00
|
|
|
// Terms and conditions of this instance
|
2021-08-26 09:28:16 +00:00
|
|
|
Terms string `bun:",nullzero"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// Contact email address for this instance
|
2021-08-26 09:28:16 +00:00
|
|
|
ContactEmail string `bun:",nullzero"`
|
2021-06-27 14:52:18 +00:00
|
|
|
// Username of the contact account for this instance
|
2021-08-26 09:28:16 +00:00
|
|
|
ContactAccountUsername string `bun:",nullzero"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// Contact account ID in the database for this instance
|
2021-08-25 13:34:33 +00:00
|
|
|
ContactAccountID string `bun:"type:CHAR(26),nullzero"`
|
|
|
|
ContactAccount *Account `bun:"rel:belongs-to"`
|
2021-05-09 12:06:06 +00:00
|
|
|
// Reputation score of this instance
|
2021-08-25 13:34:33 +00:00
|
|
|
Reputation int64 `bun:",notnull,default:0"`
|
2021-05-22 13:51:20 +00:00
|
|
|
// Version of the software used on this instance
|
2021-08-26 09:28:16 +00:00
|
|
|
Version string `bun:",nullzero"`
|
2021-05-09 12:06:06 +00:00
|
|
|
}
|