77 lines
3.4 KiB
Go
77 lines
3.4 KiB
Go
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"
|
|
}
|