account.go (3779B)
1 // GoToSocial 2 // Copyright (C) GoToSocial Authors admin@gotosocial.org 3 // SPDX-License-Identifier: AGPL-3.0-or-later 4 // 5 // This program is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU Affero General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU Affero General Public License for more details. 14 // 15 // You should have received a copy of the GNU Affero General Public License 16 // along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 package trans 19 20 import ( 21 "crypto/rsa" 22 "time" 23 ) 24 25 // Account represents the minimum viable representation of an account for export/import. 26 type Account struct { 27 Type Type `json:"type" bun:"-"` 28 ID string `json:"id" bun:",nullzero"` 29 CreatedAt *time.Time `json:"createdAt" bun:",nullzero"` 30 Username string `json:"username" bun:",nullzero"` 31 Domain string `json:"domain,omitempty" bun:",nullzero"` 32 HeaderRemoteURL string `json:"headerRemoteURL,omitempty" bun:",nullzero"` 33 AvatarRemoteURL string `json:"avatarRemoteURL,omitempty" bun:",nullzero"` 34 DisplayName string `json:"displayName,omitempty" bun:",nullzero"` 35 Note string `json:"note,omitempty" bun:",nullzero"` 36 NoteRaw string `json:"noteRaw,omitempty" bun:",nullzero"` 37 Memorial *bool `json:"memorial"` 38 Bot *bool `json:"bot"` 39 Reason string `json:"reason,omitempty" bun:",nullzero"` 40 Locked *bool `json:"locked"` 41 Discoverable *bool `json:"discoverable"` 42 Privacy string `json:"privacy,omitempty" bun:",nullzero"` 43 Sensitive *bool `json:"sensitive"` 44 Language string `json:"language,omitempty" bun:",nullzero"` 45 StatusContentType string `json:"statusContentType,omitempty" bun:",nullzero"` 46 URI string `json:"uri" bun:",nullzero"` 47 URL string `json:"url" bun:",nullzero"` 48 InboxURI string `json:"inboxURI" bun:",nullzero"` 49 OutboxURI string `json:"outboxURI" bun:",nullzero"` 50 FollowingURI string `json:"followingUri" bun:",nullzero"` 51 FollowersURI string `json:"followersUri" bun:",nullzero"` 52 FeaturedCollectionURI string `json:"featuredCollectionUri" bun:",nullzero"` 53 ActorType string `json:"actorType" bun:",nullzero"` 54 PrivateKey *rsa.PrivateKey `json:"-" mapstructure:"-"` 55 PrivateKeyString string `json:"privateKey,omitempty" mapstructure:"privateKey" bun:"-"` 56 PublicKey *rsa.PublicKey `json:"-" mapstructure:"-"` 57 PublicKeyString string `json:"publicKey,omitempty" mapstructure:"publicKey" bun:"-"` 58 PublicKeyURI string `json:"publicKeyUri" bun:",nullzero"` 59 SensitizedAt *time.Time `json:"sensitizedAt,omitempty" bun:",nullzero"` 60 SilencedAt *time.Time `json:"silencedAt,omitempty" bun:",nullzero"` 61 SuspendedAt *time.Time `json:"suspendedAt,omitempty" bun:",nullzero"` 62 HideCollections *bool `json:"hideCollections"` 63 SuspensionOrigin string `json:"suspensionOrigin,omitempty" bun:",nullzero"` 64 }