package main import "time" type Killmail struct { KillmailID int64 `json:"killmail_id" gorm:"primaryKey;column:killmail_id"` KillmailTime time.Time `json:"killmail_time" gorm:"column:killmail_time;index"` SolarSystemID int64 `json:"solar_system_id" gorm:"column:solar_system_id;index"` KillmailHash string `json:"killmail_hash" gorm:"column:killmail_hash"` HTTPLastModified time.Time `json:"http_last_modified" gorm:"column:http_last_modified"` Attackers []Attacker `json:"attackers" gorm:"foreignKey:KillmailID;references:KillmailID;constraint:OnDelete:CASCADE"` Victim Victim `json:"victim" gorm:"foreignKey:KillmailID;references:KillmailID;constraint:OnDelete:CASCADE"` } func (k *Killmail) TableName() string { return "zkill-killmails" } type Attacker struct { ID int64 `gorm:"primaryKey;autoIncrement;column:id"` KillmailID int64 `json:"killmail_id" gorm:"column:killmail_id;index"` AllianceID int64 `json:"alliance_id" gorm:"column:alliance_id"` CharacterID int64 `json:"character_id" gorm:"column:character_id"` CorporationID int64 `json:"corporation_id" gorm:"column:corporation_id"` DamageDone int64 `json:"damage_done" gorm:"column:damage_done"` FinalBlow bool `json:"final_blow" gorm:"column:final_blow"` SecurityStatus float64 `json:"security_status" gorm:"column:security_status"` ShipTypeID int64 `json:"ship_type_id" gorm:"column:ship_type_id"` WeaponTypeID int64 `json:"weapon_type_id" gorm:"column:weapon_type_id"` } func (a *Attacker) TableName() string { return "zkill-attackers" } type Victim struct { ID int64 `gorm:"primaryKey;autoIncrement;column:id"` KillmailID int64 `json:"killmail_id" gorm:"column:killmail_id;index"` AllianceID int64 `json:"alliance_id" gorm:"column:alliance_id"` CharacterID int64 `json:"character_id" gorm:"column:character_id"` CorporationID int64 `json:"corporation_id" gorm:"column:corporation_id"` DamageTaken int64 `json:"damage_taken" gorm:"column:damage_taken"` Items []Item `json:"items" gorm:"foreignKey:VictimID;references:ID;constraint:OnDelete:CASCADE"` Position Position `json:"position" gorm:"foreignKey:VictimID;references:ID;constraint:OnDelete:CASCADE"` ShipTypeID int64 `json:"ship_type_id" gorm:"column:ship_type_id"` } func (v *Victim) TableName() string { return "zkill-victims" } type Item struct { ID int64 `gorm:"primaryKey;autoIncrement;column:id"` VictimID int64 `json:"victim_id" gorm:"column:victim_id;index"` Flag int64 `json:"flag" gorm:"column:flag"` ItemTypeID int64 `json:"item_type_id" gorm:"column:item_type_id"` QuantityDestroyed *int64 `json:"quantity_destroyed,omitempty" gorm:"column:quantity_destroyed"` Singleton int64 `json:"singleton" gorm:"column:singleton"` QuantityDropped *int64 `json:"quantity_dropped,omitempty" gorm:"column:quantity_dropped"` } func (i *Item) TableName() string { return "zkill-items" } type Position struct { ID int64 `gorm:"primaryKey;autoIncrement;column:id"` VictimID int64 `json:"victim_id" gorm:"column:victim_id;index"` X float64 `json:"x" gorm:"column:x"` Y float64 `json:"y" gorm:"column:y"` Z float64 `json:"z" gorm:"column:z"` } func (p *Position) TableName() string { return "zkill-positions" }