53 lines
1.6 KiB
Go
53 lines
1.6 KiB
Go
package models
|
|
|
|
import "time"
|
|
|
|
type UserRecord struct {
|
|
Account string `json:"account"`
|
|
PasswordHash string `json:"passwordHash"`
|
|
Username string `json:"username"`
|
|
Email string `json:"email"`
|
|
Level int `json:"level"`
|
|
SproutCoins int `json:"sproutCoins"`
|
|
SecondaryEmails []string `json:"secondaryEmails,omitempty"`
|
|
Phone string `json:"phone,omitempty"`
|
|
AvatarURL string `json:"avatarUrl,omitempty"`
|
|
Bio string `json:"bio,omitempty"`
|
|
CreatedAt string `json:"createdAt"`
|
|
UpdatedAt string `json:"updatedAt"`
|
|
}
|
|
|
|
type UserPublic struct {
|
|
Account string `json:"account"`
|
|
Username string `json:"username"`
|
|
Email string `json:"email"`
|
|
Level int `json:"level"`
|
|
SproutCoins int `json:"sproutCoins"`
|
|
SecondaryEmails []string `json:"secondaryEmails,omitempty"`
|
|
Phone string `json:"phone,omitempty"`
|
|
AvatarURL string `json:"avatarUrl,omitempty"`
|
|
Bio string `json:"bio,omitempty"`
|
|
CreatedAt string `json:"createdAt"`
|
|
UpdatedAt string `json:"updatedAt"`
|
|
}
|
|
|
|
func (u UserRecord) Public() UserPublic {
|
|
return UserPublic{
|
|
Account: u.Account,
|
|
Username: u.Username,
|
|
Email: u.Email,
|
|
Level: u.Level,
|
|
SproutCoins: u.SproutCoins,
|
|
SecondaryEmails: u.SecondaryEmails,
|
|
Phone: u.Phone,
|
|
AvatarURL: u.AvatarURL,
|
|
Bio: u.Bio,
|
|
CreatedAt: u.CreatedAt,
|
|
UpdatedAt: u.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func NowISO() string {
|
|
return time.Now().Format(time.RFC3339)
|
|
}
|