42 lines
1.8 KiB
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"`
|
|
}
|