package model import "time" // GroupMember records the relationship between a TG group/channel and a member (merchant). // One member can belong to multiple groups; one group can have multiple members. type GroupMember struct { ID uint `gorm:"primaryKey;autoIncrement" json:"id"` GroupUsername string `gorm:"size:255;not null;uniqueIndex:idx_group_member,priority:1" json:"group_username"` MemberUsername string `gorm:"size:255;not null;uniqueIndex:idx_group_member,priority:2;index" json:"member_username"` GroupTitle string `gorm:"size:500" json:"group_title"` SourceType string `gorm:"size:50" json:"source_type"` // tg_channel / web / github TaskID uint `gorm:"index" json:"task_id"` // which task discovered this DiscoveredAt time.Time `json:"discovered_at"` }