Files
StackChan/server/internal/model/user.go
T
2026-04-27 10:35:03 +08:00

74 lines
3.7 KiB
Go

/*
SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD
SPDX-License-Identifier: MIT
*/
package model
type User struct {
Uid int64 `json:"uid" orm:"uid" description:"User unique UID (remote platform primary key)"` // User unique UID (remote platform primary key)
Username string `json:"username" orm:"username" description:"Login username"` // Login username
Userslug string `json:"userslug" orm:"userslug" description:"User alias"` // User alias
DisplayName string `json:"displayName" orm:"display_name" description:"User display name"` // User display name
IconText string `json:"iconText" orm:"icon_text" description:"User icon text"` // User icon text
IconBgColor string `json:"iconBgColor" orm:"icon_bg_color" description:"Icon background color"` // Icon background color
EmailConfirmed int `json:"emailConfirmed" orm:"email_confirmed" description:"Email verified, 0-no 1-yes"` // Email verified, 0-no 1-yes
JoinDate int64 `json:"joinDate" orm:"join_date" description:"Registration timestamp (milliseconds)"` // Registration timestamp (milliseconds)
LastOnline int64 `json:"lastOnline" orm:"last_online" description:"Last online timestamp (milliseconds)"` // Last online timestamp (milliseconds)
UserStatus string `json:"userStatus" orm:"user_status" description:"User online status"` // User online status
}
type RemoteLoginResp struct {
Status struct {
Code string `json:"code"`
Message string `json:"message"`
} `json:"status"`
Response struct {
Uid int64 `json:"uid"`
Username string `json:"username"`
Userslug string `json:"userslug"`
Picture interface{} `json:"picture"`
Status string `json:"status"`
Postcount int `json:"postcount"`
Reputation int `json:"reputation"`
EmailConfirmed int `json:"email:confirmed"`
Lastonline int64 `json:"lastonline"`
Flags interface{} `json:"flags"`
Banned bool `json:"banned"`
BannedExpire int `json:"banned:expire"`
Joindate int64 `json:"joindate"`
Fullname interface{} `json:"fullname"`
Displayname string `json:"displayname"`
IconText string `json:"icon:text"`
IconBgColor string `json:"icon:bgColor"`
JoindateISO string `json:"joindateISO"`
LastonlineISO string `json:"lastonlineISO"`
BannedUntil int `json:"banned_until"`
BannedReadable string `json:"banned_until_readable"`
} `json:"response"`
}
type RegistrationResponse struct {
Uid int64 `json:"uid"`
Username string `json:"username"`
Userslug string `json:"userslug"`
Email string `json:"email"`
EmailConfirmed int `json:"email:confirmed"`
JoinDate int64 `json:"joindate"`
LastOnline int64 `json:"lastonline"`
Picture interface{} `json:"picture"`
IconBgColor string `json:"icon:bgColor"`
Fullname interface{} `json:"fullname"`
Displayname string `json:"displayname"`
IconText string `json:"icon:text"`
UserStatus string `json:"status"` // User status: online
}
type RemoteRegisterResp struct {
Status struct {
Code string `json:"code"` // Status code: ok/bad-request
Message string `json:"message"` // Error message / success message
} `json:"status"`
RegistrationResponse `json:"response"`
}