Great work claude with the naming........ Holy shit......
This commit is contained in:
@@ -5,7 +5,7 @@ package main
|
||||
// ===============================================
|
||||
|
||||
// FlattenKillmail converts the nested JSON structure to ClickHouse format
|
||||
func (k *Killmail) FlattenKillmail() (*FlatKillmail, []*FittedModule) {
|
||||
func (k *Killmail) FlattenKillmail() (*FlatKillmail, []*FlatModule) {
|
||||
flat := &FlatKillmail{
|
||||
KillmailID: k.KillmailID,
|
||||
KillmailTime: k.KillmailTime,
|
||||
@@ -23,9 +23,9 @@ func (k *Killmail) FlattenKillmail() (*FlatKillmail, []*FittedModule) {
|
||||
}
|
||||
|
||||
// Convert attackers to slice of slices for ClickHouse Array(Tuple(...))
|
||||
flat.Attackers = make([]AttackerFlat, len(k.Attackers))
|
||||
flat.Attackers = make([]FlatAttacker, len(k.Attackers))
|
||||
for i, a := range k.Attackers {
|
||||
flat.Attackers[i] = AttackerFlat{
|
||||
flat.Attackers[i] = FlatAttacker{
|
||||
a.CharacterID,
|
||||
a.CorporationID,
|
||||
a.AllianceID,
|
||||
@@ -42,9 +42,9 @@ func (k *Killmail) FlattenKillmail() (*FlatKillmail, []*FittedModule) {
|
||||
}
|
||||
|
||||
// Convert items to slice of slices
|
||||
flat.Items = make([]ItemFlat, len(k.Victim.Items))
|
||||
flat.Items = make([]FlatItem, len(k.Victim.Items))
|
||||
for i, item := range k.Victim.Items {
|
||||
flat.Items[i] = ItemFlat{
|
||||
flat.Items[i] = FlatItem{
|
||||
item.Flag,
|
||||
item.ItemTypeID,
|
||||
derefInt64(item.QuantityDestroyed),
|
||||
@@ -53,7 +53,7 @@ func (k *Killmail) FlattenKillmail() (*FlatKillmail, []*FittedModule) {
|
||||
}
|
||||
}
|
||||
|
||||
var modules []*FittedModule
|
||||
var modules []*FlatModule
|
||||
for _, item := range k.Victim.Items {
|
||||
moduleSlot := GetModuleSlotByKillmailFlag(item.Flag)
|
||||
// We only care about fitted items
|
||||
@@ -61,7 +61,7 @@ func (k *Killmail) FlattenKillmail() (*FlatKillmail, []*FittedModule) {
|
||||
continue
|
||||
}
|
||||
|
||||
modules = append(modules, &FittedModule{
|
||||
modules = append(modules, &FlatModule{
|
||||
KillmailID: k.KillmailID,
|
||||
KillmailTime: k.KillmailTime,
|
||||
SolarSystemID: k.SolarSystemID,
|
||||
|
||||
14
types.go
14
types.go
@@ -75,12 +75,12 @@ type FlatKillmail struct {
|
||||
TotalDamageDone int64
|
||||
FinalBlowShipType int64
|
||||
|
||||
Attackers []AttackerFlat
|
||||
Items []ItemFlat
|
||||
Attackers []FlatAttacker
|
||||
Items []FlatItem
|
||||
}
|
||||
|
||||
// AttackerFlat - Nested in array column
|
||||
type AttackerFlat struct {
|
||||
// FlatAttacker - Nested in array column
|
||||
type FlatAttacker struct {
|
||||
CharacterID int64
|
||||
CorporationID int64
|
||||
AllianceID int64
|
||||
@@ -91,7 +91,7 @@ type AttackerFlat struct {
|
||||
SecurityStatus float64
|
||||
}
|
||||
|
||||
type ItemFlat struct {
|
||||
type FlatItem struct {
|
||||
Flag int64
|
||||
ItemTypeID int64
|
||||
QuantityDestroyed int64 // Default to 0 instead of nullable
|
||||
@@ -99,8 +99,8 @@ type ItemFlat struct {
|
||||
Singleton int64
|
||||
}
|
||||
|
||||
// FittedModule - Separate table optimized for module co-occurrence queries
|
||||
type FittedModule struct {
|
||||
// FlatModule - Separate table optimized for module co-occurrence queries
|
||||
type FlatModule struct {
|
||||
KillmailID int64
|
||||
KillmailTime time.Time
|
||||
SolarSystemID int64
|
||||
|
||||
Reference in New Issue
Block a user