thread-master/old/backend/internal/model/threads_account/domain/entity/account.go

42 lines
1.8 KiB
Go

package entity
const CollectionName = "threads_accounts"
type Status string
const (
StatusOpen Status = "open"
StatusDeleted Status = "deleted"
)
const (
KnownAccountStatusExcluded = "excluded"
)
// KnownAccountProfile stores cross-mission memory for a discovered username
// (Phase 4). Keyed by lowercase username inside Account.KnownAccounts.
type KnownAccountProfile struct {
FirstSeenAt int64 `bson:"first_seen_at" json:"first_seen_at"`
LastSeenAt int64 `bson:"last_seen_at" json:"last_seen_at"`
Missions []string `bson:"missions,omitempty" json:"missions,omitempty"`
PersonaIds []string `bson:"persona_ids,omitempty" json:"persona_ids,omitempty"`
Tags []string `bson:"tags,omitempty" json:"tags,omitempty"`
AvgEngagement float64 `bson:"avg_engagement,omitempty" json:"avg_engagement,omitempty"`
SeenCount int `bson:"seen_count,omitempty" json:"seen_count,omitempty"`
Status string `bson:"status,omitempty" json:"status,omitempty"`
}
type Account struct {
ID string `bson:"_id"`
TenantID string `bson:"tenant_id"`
OwnerUID string `bson:"owner_uid"`
DisplayName string `bson:"display_name,omitempty"`
Username string `bson:"username,omitempty"`
ThreadsUserID string `bson:"threads_user_id,omitempty"`
PersonaID string `bson:"persona_id,omitempty"`
KnownAccounts map[string]KnownAccountProfile `bson:"known_accounts,omitempty" json:"known_accounts,omitempty"`
Status Status `bson:"status"`
CreateAt int64 `bson:"create_at"`
UpdateAt int64 `bson:"update_at"`
}