package vo import ( "github.com/engigu/baihu-panel/internal/constant" "github.com/engigu/baihu-panel/internal/models" ) // 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"` 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, Hidden: env.Hidden, Enabled: env.Enabled, 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"` }