package response import ( db "server/internal/db/sqlc" "server/internal/pkg/httputil" "time" ) type SysUserRolesResponse struct { ID uint `json:"id"` Code string `json:"code"` Description string `json:"description"` } type SysUserInfo struct { ID int32 `json:"id"` Account string `json:"account"` Username string `json:"username"` AvatarUrl string `json:"avatar_url"` Roles []string `json:"roles"` Menus []db.SysMenu `json:"menus"` } type LoginResponse struct { AccessToken string `json:"access_token"` AccessTokenExp time.Time `json:"access_token_exp"` RefreshToken string `json:"refresh_token"` RefreshTokenExp time.Time `json:"refresh_token_exp"` } func NewSysUserInfo(user db.GetSysUserByIDRow, roles []db.SysRole, menus []db.SysMenu) *SysUserInfo { roleCodes := make([]string, len(roles)) for i, role := range roles { roleCodes[i] = role.Code } return &SysUserInfo{ ID: user.ID, Account: user.Account, Username: user.Username, AvatarUrl: httputil.BuildFileUrl(user.AvatarUrl), Roles: roleCodes, Menus: menus, } }