summaryrefslogtreecommitdiff
path: root/shrine/types/user/user.go
blob: 7e33d8cd56699d469806aa0b58394106fb4e17c3 (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
package user

import "time"

type CitizenSummaryResponse struct {
	Username    string `json:"username"`
	DisplayName string `json:"display_name"`
	AvatarURL   string `json:"avatar_url"`
}

type UserResponse struct {
	Username    string     `json:"username"`
	Email       string     `json:"email"`
	DisplayName string     `json:"display_name"`
	Bio         string     `json:"bio"`
	Birthday    *time.Time `json:"birthday"`
	AvatarURL   string     `json:"avatar_url"`
	BlinkieURL  string     `json:"blinkie_url"`
	Website     string     `json:"website"`
	Location    string     `json:"location"`
	Pronouns    string     `json:"pronouns"`
	Signature   string     `json:"signature"`
	Role        string     `json:"role"`
	CreatedAt   time.Time  `json:"created_at"`
}

type AdminUserResponse struct {
	UserResponse
	Jade            uint64     `json:"jade"`
	Honor           uint64     `json:"honor"`
	EmailVerified   bool       `json:"email_verified"`
	WarningCount    uint       `json:"warning_count"`
	AccountBanned   bool       `json:"account_banned"`
	BannedReason    string     `json:"banned_reason"`
	BannedAt        *time.Time `json:"banned_at"`
	AccountDisabled bool       `json:"account_disabled"`
	DisabledReason  string     `json:"disabled_reason"`
	DisabledAt      *time.Time `json:"disabled_at"`
	DisabledUntil   *time.Time `json:"disabled_until"`
	LastSeenAt      *time.Time `json:"last_seen_at"`
}

type StatsResponse struct {
	Citizens         int64                    `json:"citizens"`
	Online           int64                    `json:"online"`
	UnreadLetters    int64                    `json:"unread_letters"`
	PendingDistricts int64                    `json:"pending_districts"`
	NewestCitizens   []CitizenSummaryResponse `json:"newest_citizens"`
	OnlineCitizens   []CitizenSummaryResponse `json:"online_citizens"`
}