123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package models
- import (
- "database/sql/driver"
- "encoding/json"
- "fmt"
- "strings"
- "time"
- "github.com/rotisserie/eris"
- )
- type Member2 struct {
- UserId string `json:"user_id"` // UserId 用户ID
- Identity uint `json:"identity"` // Identity 身份
- }
- type MembersJson json.RawMessage
- func (j MembersJson) Value() (driver.Value, error) {
- if len(j) == 0 {
- return nil, nil
- }
- return json.RawMessage(j).MarshalJSON()
- }
- func (j *MembersJson) Scan(value any) error {
- bytes, ok := value.([]byte)
- if !ok {
- return eris.New(fmt.Sprint("Failed to unmarshal JSONB value:", value))
- }
- (*j) = MembersJson(bytes)
- return nil
- }
- func (j *MembersJson) ToSlice() []Member2 {
- var ms []Member2
- _ = json.Unmarshal(*j, &ms)
- return ms
- }
- func NewMembers(ms []Member2) MembersJson {
- j, _ := json.Marshal(ms)
- return j
- }
- type SessionGroup struct {
- ID string `gorm:"column:id;primary_key"`
- ChildId string `gorm:"column:child_id;NOT NULL"` // 孩子ID
- IsFamilyGroup *int `gorm:"column:is_family_group;default:1;NOT NULL"` // 是否是家庭群 1:默认(是)-1:否
- Members MembersJson `gorm:"column:members"` // 成员信息
- CreatedAt time.Time `gorm:"column:created_at;default:CURRENT_TIMESTAMP;NOT NULL"`
- UpdatedAt time.Time `gorm:"column:updated_at;default:CURRENT_TIMESTAMP;NOT NULL"` // 更新时间
- }
- func (m *SessionGroup) TableName() string {
- return "tb_session_group"
- }
- func IsSessionGroup(id string) bool {
- return strings.Contains(id, "GROUP_")
- }
|