Files
soul-yongping/soul-api/internal/model/person.go

49 lines
3.0 KiB
Go
Raw Normal View History

package model
import "time"
// PersonSourceVipSync 超级个体开通后自动同步创建,共用后台配置的「统一获客计划」;
// 删除人物时不得调用存客宝删除计划,否则会波及其他超级个体。
const PersonSourceVipSync = "vip_sync"
// Person @提及人物配置ContentPage 用)
2026-03-14 14:37:17 +08:00
// token 为 32 位唯一密钥,文章 @ 时传入 token小程序点击时用 token 兑换 ckb_api_key
// 同时缓存与存客宝 API 获客计划相关的配置,便于管理端回显与二次编辑
type Person struct {
2026-03-14 14:37:17 +08:00
ID uint `gorm:"primaryKey;autoIncrement" json:"id"`
// 绑定用户(用于“超级个体开通后自动创建@人”等幂等场景)
// 允许为空:历史数据/手工创建的 Person 不一定绑定 user
UserID *string `gorm:"column:user_id;size:50;uniqueIndex" json:"userId"`
2026-03-14 14:37:17 +08:00
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"`
Avatar string `gorm:"column:avatar;size:512;default:''" json:"avatar"` // 头像 URL无 user_id 时使用;有 user_id 时优先用 users.avatar
2026-03-18 21:06:16 +08:00
Aliases string `gorm:"column:aliases;size:255;default:''" json:"aliases"` // 逗号分隔别名:用于 @ 自动匹配
2026-03-14 14:37:17 +08:00
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"`
2026-03-24 15:44:08 +08:00
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"`
2026-03-14 14:37:17 +08:00
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"`
}
func (Person) TableName() string { return "persons" }