summaryrefslogtreecommitdiff
path: root/pkg/mastotypes/account.go
blob: 031fa7c02a450e0afcbbced105e8beeced9a3cb5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
   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 mastotypes

// Account represents a mastodon-api Account object, as described here: https://docs.joinmastodon.org/entities/account/
type Account struct {
	// The account id
	ID string `json:"id"`
	// The username of the account, not including domain.
	Username string `json:"username"`
	// The Webfinger account URI. Equal to username for local users, or username@domain for remote users.
	Acct string `json:"acct"`
	// The profile's display name.
	DisplayName string `json:"display_name"`
	// Whether the account manually approves follow requests.
	Locked bool `json:"locked"`
	// Whether the account has opted into discovery features such as the profile directory.
	Discoverable bool `json:"discoverable"`
	// A presentational flag. Indicates that the account may perform automated actions, may not be monitored, or identifies as a robot.
	Bot bool `json:"bot"`
	// When the account was created. (ISO 8601 Datetime)
	CreatedAt string `json:"created_at"`
	// The profile's bio / description.
	Note string `json:"note"`
	// The location of the user's profile page.
	URL string `json:"url"`
	// An image icon that is shown next to statuses and in the profile.
	Avatar string `json:"avatar"`
	// A static version of the avatar. Equal to avatar if its value is a static image; different if avatar is an animated GIF.
	AvatarStatic string `json:"avatar_static"`
	// An image banner that is shown above the profile and in profile cards.
	Header string `json:"header"`
	// A static version of the header. Equal to header if its value is a static image; different if header is an animated GIF.
	HeaderStatic string `json:"header_static"`
	//  The reported followers of this profile.
	FollowersCount int `json:"followers_count"`
	// The reported follows of this profile.
	FollowingCount int `json:"following_count"`
	// How many statuses are attached to this account.
	StatusesCount int `json:"statuses_count"`
	// When the most recent status was posted. (ISO 8601 Datetime)
	LastStatusAt string `json:"last_status_at"`
	// Custom emoji entities to be used when rendering the profile. If none, an empty array will be returned.
	Emojis []Emoji `json:"emojis"`
	// Additional metadata attached to a profile as name-value pairs.
	Fields []Field `json:"fields"`
	// An extra entity returned when an account is suspended.
	Suspended bool `json:"suspended"`
	// When a timed mute will expire, if applicable. (ISO 8601 Datetime)
	MuteExpiresAt string `json:"mute_expires_at"`
	// An extra entity to be used with API methods to verify credentials and update credentials.
	Source *Source `json:"source"`
}