summaryrefslogtreecommitdiff
path: root/internal/gtsmodel/block.go
blob: 989dd8193bafd2658c35f7821cef3ece83967b1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package gtsmodel

import "time"

// Block refers to the blocking of one account by another.
type Block struct {
	ID              string    `validate:"required,ulid" bun:"type:CHAR(26),pk,nullzero,notnull,unique"` // id of this item in the database
	CreatedAt       time.Time `validate:"-" bun:",nullzero,notnull,default:current_timestamp"`          // when was item created
	UpdatedAt       time.Time `validate:"-" bun:",nullzero,notnull,default:current_timestamp"`          // when was item last updated
	URI             string    `validate:"required,url" bun:",notnull,nullzero,unique"`                  // ActivityPub uri of this block.
	AccountID       string    `validate:"required,ulid" bun:"type:CHAR(26),unique:frsrctarget,notnull"` // Who does this block originate from?
	Account         *Account  `validate:"-" bun:"rel:belongs-to"`                                       // Account corresponding to accountID
	TargetAccountID string    `validate:"required,ulid" bun:"type:CHAR(26),unique:frsrctarget,notnull"` // Who is the target of this block ?
	TargetAccount   *Account  `validate:"-" bun:"rel:belongs-to"`                                       // Account corresponding to targetAccountID
}