29 lines
1.3 KiB
Go
29 lines
1.3 KiB
Go
// Package model 定义领域模型。
|
|
// common 下为跨小程序共享的物理表结构;用户数据通过 MiniID 列关联所属小程序,
|
|
// 各小程序用户互不关联(open_id 在不同 appid 下天然互不冲突,故无需额外隔离键)。
|
|
package model
|
|
|
|
import "portal-mini-go/internal/pkg/types"
|
|
|
|
// User 是小程序端用户。MiniID 关联被纳管的小程序(mini_programs.id),
|
|
// 与 open_id 共同唯一标识一个用户:(mini_id, open_id)。
|
|
type User struct {
|
|
ID uint64 `gorm:"primaryKey;autoIncrement" json:"id"`
|
|
MiniID uint64 `gorm:"column:mini_id;index:idx_mini_openid" json:"mini_id"`
|
|
OpenID string `gorm:"type:varchar(64);index:idx_mini_openid" json:"openid"`
|
|
UnionID string `gorm:"type:varchar(64);index" json:"union_id"`
|
|
Nickname string `gorm:"type:varchar(128)" json:"nickname"`
|
|
Avatar string `gorm:"type:varchar(512)" json:"avatar"`
|
|
Status int8 `gorm:"column:status;type:tinyint;not null;default:1" json:"status"`
|
|
CreatedAt types.Time `json:"created_at"`
|
|
UpdatedAt types.Time `json:"updated_at"`
|
|
}
|
|
|
|
func (User) TableName() string { return "users" }
|
|
|
|
// 用户状态:与管理端小程序一致,0 禁用、1 正常。
|
|
const (
|
|
UserStatusDisabled int8 = 0
|
|
UserStatusEnabled int8 = 1
|
|
)
|