Clean public release with: - Go/Gin/PostgreSQL/Redis architecture - Multi-tenant support - JWT authentication - Docker Compose deployment - Environment-based configuration
47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package domain
|
|
|
|
type RegisterRequest struct {
|
|
Username string `json:"username" binding:"required,min=3,max=64"`
|
|
Email string `json:"email" binding:"required,email"`
|
|
Password string `json:"password" binding:"required,min=8,max=128"`
|
|
Nickname string `json:"nickname"`
|
|
}
|
|
|
|
type LoginRequest struct {
|
|
Email string `json:"email" binding:"required,email"`
|
|
Password string `json:"password" binding:"required"`
|
|
}
|
|
|
|
type ChangePasswordRequest struct {
|
|
OldPassword string `json:"old_password" binding:"required"`
|
|
NewPassword string `json:"new_password" binding:"required,min=8,max=128"`
|
|
}
|
|
|
|
type TokenPair struct {
|
|
AccessToken string `json:"access_token"`
|
|
RefreshToken string `json:"refresh_token"`
|
|
ExpiresIn int `json:"expires_in"`
|
|
}
|
|
|
|
type UserDTO struct {
|
|
ID uint `json:"id"`
|
|
TenantID string `json:"tenant_id"`
|
|
Username string `json:"username"`
|
|
Email string `json:"email"`
|
|
Nickname string `json:"nickname"`
|
|
Avatar string `json:"avatar"`
|
|
Status int `json:"status"`
|
|
}
|
|
|
|
func ToUserDTO(u *User) UserDTO {
|
|
return UserDTO{
|
|
ID: u.ID,
|
|
TenantID: u.TenantID,
|
|
Username: u.Username,
|
|
Email: u.Email,
|
|
Nickname: u.Nickname,
|
|
Avatar: u.Avatar,
|
|
Status: u.Status,
|
|
}
|
|
}
|