package model import "time" // PersonSourceVipSync 超级个体开通后自动同步创建,共用后台配置的「统一获客计划」; // 删除人物时不得调用存客宝删除计划,否则会波及其他超级个体。 const PersonSourceVipSync = "vip_sync" // Person @提及人物配置(ContentPage 用) // token 为 32 位唯一密钥,文章 @ 时传入 token,小程序点击时用 token 兑换 ckb_api_key // 同时缓存与存客宝 API 获客计划相关的配置,便于管理端回显与二次编辑 type Person struct { ID uint `gorm:"primaryKey;autoIncrement" json:"id"` // 绑定用户(用于“超级个体开通后自动创建@人”等幂等场景) // 允许为空:历史数据/手工创建的 Person 不一定绑定 user UserID *string `gorm:"column:user_id;size:50;uniqueIndex" json:"userId"` PersonID string `gorm:"column:person_id;size:50;uniqueIndex" json:"personId"` Token string `gorm:"column:token;size:36;uniqueIndex" json:"token"` // 32 位唯一 token,文章/小程序传此值 Name string `gorm:"column:name;size:100" json:"name"` Aliases string `gorm:"column:aliases;size:255;default:''" json:"aliases"` // 逗号分隔别名:用于 @ 自动匹配 Label string `gorm:"column:label;size:200" json:"label"` CkbApiKey string `gorm:"column:ckb_api_key;size:100;default:''" json:"ckbApiKey"` // 存客宝真实密钥,不对外暴露 // 存客宝计划 ID(用于详情与跳转编辑) CkbPlanID int64 `gorm:"column:ckb_plan_id;default:0" json:"ckbPlanId"` // 存客宝 API 获客配置缓存(与 PersonAddEditModal 对应) Greeting string `gorm:"column:greeting;size:255;default:''" json:"greeting"` Tips string `gorm:"column:tips;type:text" json:"tips"` RemarkType string `gorm:"column:remark_type;size:50;default:''" json:"remarkType"` RemarkFormat string `gorm:"column:remark_format;size:200;default:''" json:"remarkFormat"` AddFriendInterval int `gorm:"column:add_friend_interval;default:1" json:"addFriendInterval"` StartTime string `gorm:"column:start_time;size:10;default:'09:00'" json:"startTime"` EndTime string `gorm:"column:end_time;size:10;default:'18:00'" json:"endTime"` DeviceGroups string `gorm:"column:device_groups;size:255;default:''" json:"deviceGroups"` // 逗号分隔的设备ID列表 // 置顶到小程序首页 IsPinned bool `gorm:"column:is_pinned;default:false" json:"isPinned"` // PersonSource 来源:空=后台手工添加;vip_sync=超级个体自动同步(共用统一计划) PersonSource string `gorm:"column:person_source;size:32;default:''" json:"personSource"` CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` } func (Person) TableName() string { return "persons" }