48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
package person
|
|
|
|
type PersonSnapshot struct {
|
|
ID string
|
|
DisplayName string
|
|
AthenaProfile ProfileSnapshot
|
|
CommonCoreProfile ProfileSnapshot
|
|
Loadout Loadout
|
|
}
|
|
|
|
type ProfileSnapshot struct {
|
|
ID string
|
|
Items map[string]ItemSnapshot
|
|
Gifts map[string]GiftSnapshot
|
|
Quests map[string]Quest
|
|
Attributes map[string]string
|
|
}
|
|
|
|
type ItemSnapshot struct {
|
|
ID string
|
|
TemplateID string
|
|
Quantity int
|
|
Favorite bool
|
|
HasSeen bool
|
|
Variants []VariantChannel
|
|
ProfileType string
|
|
}
|
|
|
|
type GiftSnapshot struct {
|
|
ID string
|
|
TemplateID string
|
|
Quantity int
|
|
FromID string
|
|
GiftedAt int64
|
|
Message string
|
|
Loot []Item
|
|
}
|
|
|
|
// Snapshot returns a snapshot of the person. No pointers as it has to compare the value not the address.
|
|
func CreateSnapshot(person *Person) *PersonSnapshot {
|
|
return &PersonSnapshot{
|
|
ID: person.ID,
|
|
DisplayName: person.DisplayName,
|
|
Loadout: *person.Loadout,
|
|
AthenaProfile: *person.AthenaProfile.Snapshot(),
|
|
CommonCoreProfile: *person.CommonCoreProfile.Snapshot(),
|
|
}
|
|
} |