Initial commit: TaskPool React panel
- React frontend with route-level code splitting - Backend rebranded from Baihu to TaskPool - DB brand migration script and local compatibility
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
package vo
|
||||
|
||||
import (
|
||||
"github.com/engigu/taskpool/internal/constant"
|
||||
"github.com/engigu/taskpool/internal/models"
|
||||
"github.com/engigu/taskpool/internal/utils"
|
||||
)
|
||||
|
||||
// UserVO 用户视图对象
|
||||
type UserVO struct {
|
||||
ID string `json:"id"`
|
||||
Username string `json:"username"`
|
||||
Email string `json:"email"`
|
||||
Role string `json:"role"`
|
||||
CreatedAt models.LocalTime `json:"created_at"`
|
||||
UpdatedAt models.LocalTime `json:"updated_at"`
|
||||
}
|
||||
|
||||
// ToUserVO 将 User 模型转换为 UserVO
|
||||
func ToUserVO(user *models.User) *UserVO {
|
||||
if user == nil {
|
||||
return nil
|
||||
}
|
||||
return &UserVO{
|
||||
ID: user.ID,
|
||||
Username: user.Username,
|
||||
Email: user.Email,
|
||||
Role: user.Role,
|
||||
CreatedAt: user.CreatedAt,
|
||||
UpdatedAt: user.UpdatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
// EnvVO 环境变量视图对象
|
||||
type EnvVO struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Value string `json:"value"`
|
||||
Remark string `json:"remark"`
|
||||
Type string `json:"type"`
|
||||
Tags string `json:"tags"`
|
||||
Hidden bool `json:"hidden"`
|
||||
Enabled bool `json:"enabled"`
|
||||
CreatedAt models.LocalTime `json:"created_at"`
|
||||
UpdatedAt models.LocalTime `json:"updated_at"`
|
||||
}
|
||||
|
||||
// ToEnvVO 将 Env 模型转换为 EnvVO
|
||||
func ToEnvVO(env *models.EnvironmentVariable) *EnvVO {
|
||||
if env == nil {
|
||||
return nil
|
||||
}
|
||||
val := string(env.Value)
|
||||
if env.Type == constant.EnvTypeSecret {
|
||||
val = "********"
|
||||
}
|
||||
return &EnvVO{
|
||||
ID: env.ID,
|
||||
Name: env.Name,
|
||||
Value: val,
|
||||
Remark: env.Remark,
|
||||
Type: env.Type,
|
||||
Tags: env.Tags,
|
||||
Hidden: utils.DerefBool(env.Hidden, true),
|
||||
Enabled: utils.DerefBool(env.Enabled, true),
|
||||
CreatedAt: env.CreatedAt,
|
||||
UpdatedAt: env.UpdatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
// ToEnvVOList 将 Env 模型列表转换为 EnvVO 列表
|
||||
func ToEnvVOList(envs []*models.EnvironmentVariable) []*EnvVO {
|
||||
if envs == nil {
|
||||
return nil
|
||||
}
|
||||
vos := make([]*EnvVO, len(envs))
|
||||
for i, e := range envs {
|
||||
vos[i] = ToEnvVO(e)
|
||||
}
|
||||
return vos
|
||||
}
|
||||
|
||||
// ToEnvVOListFromModels 将 Env 模型列表转换为 EnvVO 列表
|
||||
func ToEnvVOListFromModels(envs []models.EnvironmentVariable) []*EnvVO {
|
||||
vos := make([]*EnvVO, len(envs))
|
||||
for i := range envs {
|
||||
vos[i] = ToEnvVO(&envs[i])
|
||||
}
|
||||
return vos
|
||||
}
|
||||
|
||||
// LoginLogVO 登录日志视图对象
|
||||
type LoginLogVO struct {
|
||||
ID string `json:"id"`
|
||||
Username string `json:"username"`
|
||||
IP string `json:"ip"`
|
||||
UserAgent string `json:"user_agent"`
|
||||
Status string `json:"status"`
|
||||
Message string `json:"message"`
|
||||
CreatedAt models.LocalTime `json:"created_at"`
|
||||
}
|
||||
|
||||
// TokenConfig Token 配置结构体
|
||||
type TokenConfig struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
Token string `json:"token"`
|
||||
ExpireAt string `json:"expire_at"`
|
||||
}
|
||||
Reference in New Issue
Block a user