gotosocial/internal/gtsmodel/instance.go
tobi 2dc9fc1626
Pg to bun (#148)
* start moving to bun

* changing more stuff

* more

* and yet more

* tests passing

* seems stable now

* more big changes

* small fix

* little fixes
2021-08-25 15:34:33 +02:00

42 lines
1.6 KiB
Go

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