diff options
Diffstat (limited to 'internal/db/gtsmodel/status.go')
| -rw-r--r-- | internal/db/gtsmodel/status.go | 138 | 
1 files changed, 0 insertions, 138 deletions
diff --git a/internal/db/gtsmodel/status.go b/internal/db/gtsmodel/status.go deleted file mode 100644 index 06ef61760..000000000 --- a/internal/db/gtsmodel/status.go +++ /dev/null @@ -1,138 +0,0 @@ -/* -   GoToSocial -   Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org - -   This program is free software: you can redistribute it and/or modify -   it under the terms of the GNU Affero General Public License as published by -   the Free Software Foundation, either version 3 of the License, or -   (at your option) any later version. - -   This program is distributed in the hope that it will be useful, -   but WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -   GNU Affero General Public License for more details. - -   You should have received a copy of the GNU Affero General Public License -   along with this program.  If not, see <http://www.gnu.org/licenses/>. -*/ - -package gtsmodel - -import "time" - -// Status represents a user-created 'post' or 'status' in the database, either remote or local -type Status struct { -	// id of the status in the database -	ID string `pg:"type:uuid,default:gen_random_uuid(),pk,notnull"` -	// uri at which this status is reachable -	URI string `pg:",unique"` -	// web url for viewing this status -	URL string `pg:",unique"` -	// the html-formatted content of this status -	Content string -	// Database IDs of any media attachments associated with this status -	Attachments []string `pg:",array"` -	// Database IDs of any tags used in this status -	Tags []string `pg:",array"` -	// Database IDs of any accounts mentioned in this status -	Mentions []string `pg:",array"` -	// Database IDs of any emojis used in this status -	Emojis []string `pg:",array"` -	// when was this status created? -	CreatedAt time.Time `pg:"type:timestamp,notnull,default:now()"` -	// when was this status updated? -	UpdatedAt time.Time `pg:"type:timestamp,notnull,default:now()"` -	// is this status from a local account? -	Local bool -	// which account posted this status? -	AccountID string -	// id of the status this status is a reply to -	InReplyToID string -	// id of the account that this status replies to -	InReplyToAccountID string -	// id of the status this status is a boost of -	BoostOfID string -	// cw string for this status -	ContentWarning string -	// visibility entry for this status -	Visibility Visibility `pg:",notnull"` -	// mark the status as sensitive? -	Sensitive bool -	// what language is this status written in? -	Language string -	// Which application was used to create this status? -	CreatedWithApplicationID string -	// advanced visibility for this status -	VisibilityAdvanced *VisibilityAdvanced -	// What is the activitystreams type of this status? See: https://www.w3.org/TR/activitystreams-vocabulary/#object-types -	// Will probably almost always be Note but who knows!. -	ActivityStreamsType ActivityStreamsObject -	// Original text of the status without formatting -	Text string - -	/* -		NON-DATABASE FIELDS - -		These are for convenience while passing the status around internally, -		but these fields should *never* be put in the db. -	*/ - -	// Mentions created in this status -	GTSMentions []*Mention `pg:"-"` -	// Hashtags used in this status -	GTSTags []*Tag `pg:"-"` -	// Emojis used in this status -	GTSEmojis []*Emoji `pg:"-"` -	// MediaAttachments used in this status -	GTSMediaAttachments []*MediaAttachment `pg:"-"` -	// Status being replied to -	GTSReplyToStatus *Status `pg:"-"` -	// Account being replied to -	GTSReplyToAccount *Account `pg:"-"` -} - -// Visibility represents the visibility granularity of a status. -type Visibility string - -const ( -	// 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 = "public" -) - -// VisibilityAdvanced denotes a set of flags that can be set on a status for fine-tuning visibility and interactivity of the status. -type VisibilityAdvanced struct { -	/* -		ADVANCED SETTINGS -- These should all default to TRUE. - -		If PUBLIC is selected, they will all be overwritten to TRUE regardless of what is selected. -		If UNLOCKED is selected, any of them can be turned on or off in any combination. -		If FOLLOWERS-ONLY or MUTUALS-ONLY are selected, boostable will always be FALSE. The others can be turned on or off as desired. -		If DIRECT is selected, boostable will be FALSE, and all other flags will be TRUE. -	*/ -	// This status will be federated beyond the local timeline(s) -	Federated bool `pg:"default:true"` -	// This status can be boosted/reblogged -	Boostable bool `pg:"default:true"` -	// This status can be replied to -	Replyable bool `pg:"default:true"` -	// This status can be liked/faved -	Likeable bool `pg:"default:true"` -} - -// RelevantAccounts denotes accounts that are replied to, boosted by, or mentioned in a status. -type RelevantAccounts struct { -	ReplyToAccount        *Account -	BoostedAccount        *Account -	BoostedReplyToAccount *Account -	MentionedAccounts     []*Account -}  | 
