42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
type User struct {
|
|
ID int64 `json:"id"`
|
|
Username string `json:"username"`
|
|
PasswordHash string `json:"-"`
|
|
Nickname string `json:"nickname"`
|
|
AvatarURL string `json:"avatar_url"`
|
|
Bio string `json:"bio"`
|
|
IsAdmin bool `json:"is_admin"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
// 请求/响应结构
|
|
type RegisterRequest struct {
|
|
Username string `json:"username" binding:"required,min=3,max=20"`
|
|
Password string `json:"password" binding:"required,min=6"`
|
|
Nickname string `json:"nickname" binding:"required,min=1,max=50"`
|
|
}
|
|
|
|
type LoginRequest struct {
|
|
Username string `json:"username" binding:"required"`
|
|
Password string `json:"password" binding:"required"`
|
|
}
|
|
|
|
type LoginResponse struct {
|
|
Token string `json:"token"`
|
|
User *User `json:"user"`
|
|
}
|
|
|
|
type UpdateProfileRequest struct {
|
|
Nickname string `json:"nickname" binding:"max=50"`
|
|
Bio string `json:"bio" binding:"max=200"`
|
|
}
|
|
|
|
type ProfileResponse struct {
|
|
User *User `json:"user"`
|
|
CreatedAt string `json:"created_at"`
|
|
}
|