71 lines
2.0 KiB
Go
71 lines
2.0 KiB
Go
package dto
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/XingfenD/yoresee_doc/internal/model"
|
|
)
|
|
|
|
type UserBase struct {
|
|
ExternalID string `json:"external_id"`
|
|
Username string `json:"username"`
|
|
Email string `json:"email"`
|
|
Nickname string `json:"nickname"`
|
|
Avatar string `json:"avatar"`
|
|
AvatarObjectKey string `json:"-"`
|
|
AvatarVersion int64 `json:"-"`
|
|
Status int `json:"status"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type UserCreate struct {
|
|
Username string `json:"username"`
|
|
Email string `json:"email"`
|
|
Password string `json:"password"`
|
|
InvitationCode *string `json:"invitation_code"`
|
|
}
|
|
|
|
type UserUpdate struct {
|
|
Username string `json:"username"`
|
|
Email string `json:"email"`
|
|
Password string `json:"password"`
|
|
Nickname string `json:"nickname"`
|
|
Avatar string `json:"avatar"`
|
|
Status int `json:"status"`
|
|
InvitationCode *string `json:"invitation_code"`
|
|
}
|
|
|
|
type UpdateProfileRequest struct {
|
|
Username *string `json:"username"`
|
|
Email *string `json:"email"`
|
|
Nickname *string `json:"nickname"`
|
|
Password *string `json:"password"`
|
|
AvatarFile []byte `json:"avatar_file"`
|
|
AvatarFilename *string `json:"avatar_filename"`
|
|
AvatarContentType *string `json:"avatar_content_type"`
|
|
}
|
|
|
|
type UserResponse struct {
|
|
UserBase
|
|
InvitationCode *string `json:"invitation_code"`
|
|
}
|
|
|
|
func NewUserResponseFromModel(user *model.User) *UserResponse {
|
|
return &UserResponse{
|
|
UserBase: UserBase{
|
|
ExternalID: user.ExternalID,
|
|
Username: user.Username,
|
|
Email: user.Email,
|
|
Nickname: user.Nickname,
|
|
Avatar: "",
|
|
AvatarObjectKey: user.AvatarObjectKey,
|
|
AvatarVersion: user.AvatarVersion,
|
|
Status: user.Status,
|
|
CreatedAt: user.CreatedAt,
|
|
UpdatedAt: user.UpdatedAt,
|
|
},
|
|
InvitationCode: user.InvitationCode,
|
|
}
|
|
}
|