package model // User 小程序用户(铲屎官) type User struct { Base OpenID string `gorm:"size:64;index" json:"openid"` Nickname string `gorm:"size:64" json:"nickname"` // 昵称是系统随机生成的(还没被用户或微信授权覆盖过)。 // 有这个标记才能安全地在用户授权时覆盖,而不会把他改过的昵称冲掉。 NicknameAuto bool `json:"nickname_auto"` PetCount int `gorm:"-" json:"pet_count"` // 计算字段:后台列表用 Avatar string `gorm:"size:512" json:"avatar"` AvatarFileID string `gorm:"size:24" json:"avatar_file_id"` // 关联 files 表;优先于 Avatar AvatarURL string `gorm:"-" json:"avatar_url"` // 计算字段:由 AvatarFileID 解析 Phone string `gorm:"size:32" json:"phone"` Onboarded bool `json:"onboarded"` Disabled bool `json:"disabled"` IsBot bool `gorm:"size:24;index" json:"is_bot"` // 虚拟宠友账号(AI 社区运营用) // —— 个人主页装扮 —— Bio string `gorm:"size:120" json:"bio"` // 个性签名 BgFileID string `gorm:"size:24" json:"bg_file_id"` // 主页头图,关联 files 表 BgURL string `gorm:"-" json:"bg_url"` // 计算字段:由 BgFileID 解析 Theme string `gorm:"size:16" json:"theme"` // 主题色 key,见 service.UserThemes // 存「隐藏」而不是「展示」,为的是零值即默认:老数据 AutoMigrate 出来是 0, // 正好等于「展示宠物墙」,不需要给存量用户跑一次刷值 HidePets bool `json:"hide_pets"` }