23 lines
1.0 KiB
Go
23 lines
1.0 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// ConversationLabel represents a label/tag applied to a conversation.
|
|
// Reference: Chatwoot tag join model + P2B M3 spec
|
|
// This is the join table between Conversation and Tag, replacing the
|
|
// old comma-separated Labels string field on Conversation.
|
|
type ConversationLabel struct {
|
|
ID uint `gorm:"primaryKey;autoIncrement" json:"id"`
|
|
ConversationID uint `gorm:"not null;uniqueIndex:idx_conv_label_tag;index" json:"conversation_id"`
|
|
TagID uint `gorm:"not null;uniqueIndex:idx_conv_label_tag;index" json:"tag_id"`
|
|
AccountID uint `gorm:"not null;index" json:"account_id"`
|
|
CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"`
|
|
|
|
Conversation Conversation `gorm:"foreignKey:ConversationID" json:"conversation,omitempty"`
|
|
Tag Tag `gorm:"foreignKey:TagID" json:"tag,omitempty"`
|
|
Account Account `gorm:"foreignKey:AccountID" json:"account,omitempty"`
|
|
}
|
|
|
|
func (ConversationLabel) TableName() string { return "conversation_labels" } |