| 
									
										
										
										
											2021-03-05 18:31:12 +01:00
										 |  |  | /* | 
					
						
							|  |  |  |    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/>. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-15 16:15:14 +01:00
										 |  |  | // package gtsmodel contains types used *internally* by GoToSocial and added/removed/selected from the database. | 
					
						
							|  |  |  | // These types should never be serialized and/or sent out via public APIs, as they contain sensitive information. | 
					
						
							|  |  |  | // The annotation used on these structs is for handling them via the go-pg ORM. See here: https://pg.uptrace.dev/models/ | 
					
						
							|  |  |  | package gtsmodel | 
					
						
							| 
									
										
										
										
											2021-03-05 18:31:12 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"net/url" | 
					
						
							|  |  |  | 	"time" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-15 16:15:14 +01:00
										 |  |  | // GTSAccount represents a GoToSocial user account | 
					
						
							|  |  |  | type GTSAccount struct { | 
					
						
							|  |  |  | 	GTSAvatar | 
					
						
							|  |  |  | 	GTSHeader | 
					
						
							| 
									
										
										
										
											2021-03-08 22:37:56 +01:00
										 |  |  | 	URI                   string | 
					
						
							|  |  |  | 	URL                   string | 
					
						
							|  |  |  | 	ID                    string `pg:"type:uuid,default:gen_random_uuid(),pk,notnull"` | 
					
						
							| 
									
										
										
										
											2021-03-05 18:31:12 +01:00
										 |  |  | 	Username              string | 
					
						
							|  |  |  | 	Domain                string | 
					
						
							|  |  |  | 	Secret                string | 
					
						
							|  |  |  | 	PrivateKey            string | 
					
						
							|  |  |  | 	PublicKey             string | 
					
						
							| 
									
										
										
										
											2021-03-08 22:37:56 +01:00
										 |  |  | 	RemoteURL             string | 
					
						
							| 
									
										
										
										
											2021-03-05 18:31:12 +01:00
										 |  |  | 	CreatedAt             time.Time `pg:"type:timestamp,notnull"` | 
					
						
							|  |  |  | 	UpdatedAt             time.Time `pg:"type:timestamp,notnull"` | 
					
						
							|  |  |  | 	Note                  string | 
					
						
							|  |  |  | 	DisplayName           string | 
					
						
							|  |  |  | 	SubscriptionExpiresAt time.Time `pg:"type:timestamp"` | 
					
						
							|  |  |  | 	Locked                bool | 
					
						
							|  |  |  | 	LastWebfingeredAt     time.Time `pg:"type:timestamp"` | 
					
						
							| 
									
										
										
										
											2021-03-08 22:37:56 +01:00
										 |  |  | 	InboxURL              string | 
					
						
							|  |  |  | 	OutboxURL             string | 
					
						
							|  |  |  | 	SharedInboxURL        string | 
					
						
							|  |  |  | 	FollowersURL          string | 
					
						
							| 
									
										
										
										
											2021-03-05 18:31:12 +01:00
										 |  |  | 	Protocol              int | 
					
						
							|  |  |  | 	Memorial              bool | 
					
						
							|  |  |  | 	MovedToAccountID      int | 
					
						
							| 
									
										
										
										
											2021-03-08 22:37:56 +01:00
										 |  |  | 	FeaturedCollectionURL string | 
					
						
							| 
									
										
										
										
											2021-03-05 18:31:12 +01:00
										 |  |  | 	Fields                map[string]string | 
					
						
							|  |  |  | 	ActorType             string | 
					
						
							|  |  |  | 	Discoverable          bool | 
					
						
							|  |  |  | 	AlsoKnownAs           string | 
					
						
							|  |  |  | 	SilencedAt            time.Time `pg:"type:timestamp"` | 
					
						
							|  |  |  | 	SuspendedAt           time.Time `pg:"type:timestamp"` | 
					
						
							|  |  |  | 	TrustLevel            int | 
					
						
							|  |  |  | 	HideCollections       bool | 
					
						
							|  |  |  | 	SensitizedAt          time.Time `pg:"type:timestamp"` | 
					
						
							|  |  |  | 	SuspensionOrigin      int | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-15 16:15:14 +01:00
										 |  |  | type GTSAvatar struct { | 
					
						
							| 
									
										
										
										
											2021-03-07 13:05:33 +01:00
										 |  |  | 	AvatarFileName             string | 
					
						
							|  |  |  | 	AvatarContentType          string | 
					
						
							|  |  |  | 	AvatarFileSize             int | 
					
						
							|  |  |  | 	AvatarUpdatedAt            *time.Time `pg:"type:timestamp"` | 
					
						
							|  |  |  | 	AvatarRemoteURL            *url.URL   `pg:"type:text"` | 
					
						
							|  |  |  | 	AvatarStorageSchemaVersion int | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-15 16:15:14 +01:00
										 |  |  | type GTSHeader struct { | 
					
						
							| 
									
										
										
										
											2021-03-07 13:05:33 +01:00
										 |  |  | 	HeaderFileName             string | 
					
						
							|  |  |  | 	HeaderContentType          string | 
					
						
							|  |  |  | 	HeaderFileSize             int | 
					
						
							|  |  |  | 	HeaderUpdatedAt            *time.Time `pg:"type:timestamp"` | 
					
						
							|  |  |  | 	HeaderRemoteURL            *url.URL   `pg:"type:text"` | 
					
						
							|  |  |  | 	HeaderStorageSchemaVersion int | 
					
						
							|  |  |  | } |