summaryrefslogtreecommitdiff
path: root/internal/db/bundb/migrations/20240620074530_interaction_policy/status.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/bundb/migrations/20240620074530_interaction_policy/status.go')
-rw-r--r--internal/db/bundb/migrations/20240620074530_interaction_policy/status.go93
1 files changed, 57 insertions, 36 deletions
diff --git a/internal/db/bundb/migrations/20240620074530_interaction_policy/status.go b/internal/db/bundb/migrations/20240620074530_interaction_policy/status.go
index ae96d047d..615c81b66 100644
--- a/internal/db/bundb/migrations/20240620074530_interaction_policy/status.go
+++ b/internal/db/bundb/migrations/20240620074530_interaction_policy/status.go
@@ -22,40 +22,61 @@ import (
)
type Status struct {
- ID string `bun:"type:CHAR(26),pk,nullzero,notnull,unique"`
- CreatedAt time.Time `bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"`
- UpdatedAt time.Time `bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"`
- FetchedAt time.Time `bun:"type:timestamptz,nullzero"`
- PinnedAt time.Time `bun:"type:timestamptz,nullzero"`
- URI string `bun:",unique,nullzero,notnull"`
- URL string `bun:",nullzero"`
- Content string `bun:""`
- AttachmentIDs []string `bun:"attachments,array"`
- TagIDs []string `bun:"tags,array"`
- MentionIDs []string `bun:"mentions,array"`
- EmojiIDs []string `bun:"emojis,array"`
- Local *bool `bun:",nullzero,notnull,default:false"`
- AccountID string `bun:"type:CHAR(26),nullzero,notnull"`
- AccountURI string `bun:",nullzero,notnull"`
- InReplyToID string `bun:"type:CHAR(26),nullzero"`
- InReplyToURI string `bun:",nullzero"`
- InReplyToAccountID string `bun:"type:CHAR(26),nullzero"`
- InReplyTo *Status `bun:"-"`
- BoostOfID string `bun:"type:CHAR(26),nullzero"`
- BoostOfURI string `bun:"-"`
- BoostOfAccountID string `bun:"type:CHAR(26),nullzero"`
- BoostOf *Status `bun:"-"`
- ThreadID string `bun:"type:CHAR(26),nullzero"`
- PollID string `bun:"type:CHAR(26),nullzero"`
- ContentWarning string `bun:",nullzero"`
- Visibility string `bun:",nullzero,notnull"`
- Sensitive *bool `bun:",nullzero,notnull,default:false"`
- Language string `bun:",nullzero"`
- CreatedWithApplicationID string `bun:"type:CHAR(26),nullzero"`
- ActivityStreamsType string `bun:",nullzero,notnull"`
- Text string `bun:""`
- Federated *bool `bun:",notnull"`
- Boostable *bool `bun:",notnull"`
- Replyable *bool `bun:",notnull"`
- Likeable *bool `bun:",notnull"`
+ ID string `bun:"type:CHAR(26),pk,nullzero,notnull,unique"`
+ CreatedAt time.Time `bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"`
+ UpdatedAt time.Time `bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"`
+ FetchedAt time.Time `bun:"type:timestamptz,nullzero"`
+ PinnedAt time.Time `bun:"type:timestamptz,nullzero"`
+ URI string `bun:",unique,nullzero,notnull"`
+ URL string `bun:",nullzero"`
+ Content string `bun:""`
+ AttachmentIDs []string `bun:"attachments,array"`
+ TagIDs []string `bun:"tags,array"`
+ MentionIDs []string `bun:"mentions,array"`
+ EmojiIDs []string `bun:"emojis,array"`
+ Local *bool `bun:",nullzero,notnull,default:false"`
+ AccountID string `bun:"type:CHAR(26),nullzero,notnull"`
+ AccountURI string `bun:",nullzero,notnull"`
+ InReplyToID string `bun:"type:CHAR(26),nullzero"`
+ InReplyToURI string `bun:",nullzero"`
+ InReplyToAccountID string `bun:"type:CHAR(26),nullzero"`
+ InReplyTo *Status `bun:"-"`
+ BoostOfID string `bun:"type:CHAR(26),nullzero"`
+ BoostOfURI string `bun:"-"`
+ BoostOfAccountID string `bun:"type:CHAR(26),nullzero"`
+ BoostOf *Status `bun:"-"`
+ ThreadID string `bun:"type:CHAR(26),nullzero"`
+ PollID string `bun:"type:CHAR(26),nullzero"`
+ ContentWarning string `bun:",nullzero"`
+ Visibility Visibility `bun:",nullzero,notnull"`
+ Sensitive *bool `bun:",nullzero,notnull,default:false"`
+ Language string `bun:",nullzero"`
+ CreatedWithApplicationID string `bun:"type:CHAR(26),nullzero"`
+ ActivityStreamsType string `bun:",nullzero,notnull"`
+ Text string `bun:""`
+ Federated *bool `bun:",notnull"`
+ Boostable *bool `bun:",notnull"`
+ Replyable *bool `bun:",notnull"`
+ Likeable *bool `bun:",notnull"`
}
+
+// Visibility represents the visibility granularity of a status.
+type Visibility string
+
+const (
+ // VisibilityNone means nobody can see this.
+ // It's only used for web status visibility.
+ VisibilityNone Visibility = "none"
+ // VisibilityPublic means this status will be visible to everyone on all timelines.
+ VisibilityPublic Visibility = "public"
+ // VisibilityUnlocked means this status will be visible to everyone, but will only show on home timeline to followers, and in lists.
+ VisibilityUnlocked Visibility = "unlocked"
+ // VisibilityFollowersOnly means this status is viewable to followers only.
+ VisibilityFollowersOnly Visibility = "followers_only"
+ // VisibilityMutualsOnly means this status is visible to mutual followers only.
+ VisibilityMutualsOnly Visibility = "mutuals_only"
+ // VisibilityDirect means this status is visible only to mentioned recipients.
+ VisibilityDirect Visibility = "direct"
+ // VisibilityDefault is used when no other setting can be found.
+ VisibilityDefault Visibility = VisibilityUnlocked
+)