Files
gochat/backend/internal/model/contact_inbox.go
T
2026-08-12 22:58:46 +08:00

23 lines
1.1 KiB
Go

package model
import "gorm.io/datatypes"
// ContactInbox represents the join between Contact and Inbox with source info.
// Reference: Chatwoot ContactInbox model + P2B M4 spec
type ContactInbox struct {
Base
ContactID uint `gorm:"column:contact_id;not null;index" json:"contact_id"`
InboxID uint `gorm:"column:inbox_id;not null;index" json:"inbox_id"`
SourceID string `gorm:"column:source_id;size:255;index" json:"source_id"`
HMACToken string `gorm:"column:hmac_token;size:255" json:"hmac_token"`
HMACVerified bool `gorm:"column:hmac_verified;default:false" json:"hmac_verified"`
PubsubToken string `gorm:"column:pubsub_token;size:255" json:"pubsub_token"`
HasAroundFlag bool `gorm:"column:has_around_flag;default:false" json:"has_around_flag"`
ChannelMetadata datatypes.JSON `gorm:"column:channel_metadata;type:jsonb;default:'{}'" json:"-"`
Contact Contact `gorm:"foreignKey:ContactID" json:"contact,omitempty"`
Inbox Inbox `gorm:"foreignKey:InboxID" json:"inbox,omitempty"`
}
func (ContactInbox) TableName() string { return "contact_inboxes" }