Some checks failed
CI / Build & Test (push) Failing after 1m31s
- Add user management endpoints (list/create/get/update/delete) with pagination and search - Add dashboard stats endpoint with tenant/user/online counts and growth metrics - Add tenant resolver middleware for multi-tenant request scoping - Add i18n kernel with zh/en message files and AcceptLanguage middleware - Add WebSocket hub/handler for real-time communication - Add job scheduler kernel with cron support - Add plugin sandbox for isolated execution - Add storage kernel (local filesystem) - Add event bus kernel for pub/sub - Add cache kernel abstraction - Add database migration runner and version upgrade checker - Add rate limiting middleware with Redis backend - Add SQL migrations for rbac, audit_logs, settings, notifications, examples - Extend user repository with list/delete/count operations - Register all module routes with tenant resolver
66 lines
1.8 KiB
Go
66 lines
1.8 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"`
|
|
LastLogin string `json:"last_login,omitempty"`
|
|
}
|
|
|
|
func ToUserDTO(u *User) UserDTO {
|
|
dto := UserDTO{
|
|
ID: u.ID,
|
|
TenantID: u.TenantID,
|
|
Username: u.Username,
|
|
Email: u.Email,
|
|
Nickname: u.Nickname,
|
|
Avatar: u.Avatar,
|
|
Status: u.Status,
|
|
}
|
|
if u.LastLogin != nil {
|
|
dto.LastLogin = u.LastLogin.Format("2006-01-02 15:04:05")
|
|
}
|
|
return dto
|
|
}
|
|
|
|
type CreateUserRequest 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"`
|
|
Status int `json:"status"`
|
|
}
|
|
|
|
type UpdateUserRequest struct {
|
|
Nickname string `json:"nickname"`
|
|
Email string `json:"email"`
|
|
Status *int `json:"status"`
|
|
}
|