package model import ( "encoding/json" "time" ) // Account represents a tenant/workspace in GoChat. // Reference: Chatwoot app/models/account.rb + P2B M1 Account spec type Account struct { ID uint `gorm:"primaryKey" json:"id"` Name string `gorm:"size:255;not null" json:"name"` Locale string `gorm:"size:10;default:'en'" json:"locale"` Domain string `gorm:"size:255" json:"domain"` SupportEmail string `gorm:"size:255" json:"support_email"` LogoURL string `gorm:"size:512" json:"logo_url"` Features json.RawMessage `gorm:"type:jsonb;default:'{}'" json:"features"` AutoResolveDuration int `gorm:"default:0" json:"auto_resolve_duration"` Namespace string `gorm:"size:255" json:"namespace"` BrandingEnabled bool `gorm:"default:false" json:"branding_enabled"` BrandingColors json.RawMessage `gorm:"type:jsonb" json:"branding_colors"` BrandingLogoURL string `gorm:"size:512" json:"branding_logo_url"` BrandingPageURL string `gorm:"size:512" json:"branding_page_url"` CustomCustomAttributesEnabled bool `gorm:"default:false" json:"custom_custom_attributes_enabled"` CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"` UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"` Users []AccountUser `gorm:"foreignKey:AccountID" json:"users,omitempty"` Inboxes []Inbox `gorm:"foreignKey:AccountID" json:"inboxes,omitempty"` Conversations []Conversation `gorm:"foreignKey:AccountID" json:"conversations,omitempty"` } func (Account) TableName() string { return "accounts" }