summaryrefslogtreecommitdiffhomepage
path: root/models.go
blob: 3b369ca0660e8f7c1930982fff6571aba7218c00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package main

import (
	"time"
)

type Vector3 struct {
	X float64 `json:"x"`
	Y float64 `json:"y"`
	Z float64 `json:"z"`
}

type Killmail struct {
	Id   int32  `json:"id"`
	Hash string `json:"hash"`
}

type Ship struct {
	Name  string `json:"name"`
	Group string `json:"group"`
}

type Location struct {
	Name          string  `json:"name"`
	Security      float32 `json:"security"`
	Position      Vector3 `json:"position"`
	Constellation string  `json:"constellation"`
	Region        string  `json:"region"`
}

type Team []int32

type BattleStub struct {
	Teams     []Team     `json:"teams"`
	Killmails []Killmail `json:"killmails"`
}

type Battle struct {
	Id           string             `json:"-"`
	Name         string             `json:"name"`
	LastModified time.Time          `json:"-"`
	StartTime    time.Time          `json:"started_at"`
	EndTime      time.Time          `json:"ended_at"`
	Killmails    []EsiKillmail      `json:"killmails"` // How about no?
	Teams        []Team             `json:"teams"`
	Ships        map[int32]Ship     `json:"ships"`
	Locations    map[int32]Location `json:"locations"`
	Names        map[int32]string   `json:"names'`
}

type EsiKillmail struct {
	Id            int32  `json:"killmail_id"`
	Hash          string `json:"hash"`
	SolarSystemId int32  `json:"solar_system_id"`
	Victim        struct {
		Position      Vector3 `json:"position"`
		ShipTypeId    int32   `json:"ship_type_id"`
		CharacterId   int32   `json:"character_id"`
		CorporationId int32   `json:"corporation_id"`
		AllianceId    int32   `json:"alliance_id"`
		FactionId     int32   `json:"faction_id"`
	} `json:"victim"`
	Time time.Time `json:"killmail_time"`
}

type EsiUniverseSystem struct {
	Name            string  `json:"name"`
	ConstellationId int32   `json:"constellation_id"`
	Position        Vector3 `json:"position"`
	Security        float32 `json:"security_status"`
}

type EsiUniverseConstellation struct {
	Name     string `json:"name"`
	RegionId int32  `json:"region_id"`
}

type EsiUniverseRegion struct {
	Name string `json:"name"`
}

type EsiType struct {
	Name    string `json:"name"`
	GroupId int32  `json:"group_id"`
}

type EsiGroup struct {
	Name string `json:"name"`
}