esi_openapi/groups/
killmails.rs1use crate::groups::Position;
2use crate::prelude::*;
3
4pub struct KillmailsGroup<'a> {
6 pub(crate) esi: &'a Esi,
7}
8
9#[derive(Debug, Deserialize)]
10#[allow(missing_docs)]
11pub struct RecentKillMail {
12 pub killmail_hash: String,
13 pub killmail_id: i64,
14}
15
16#[derive(Debug, Deserialize)]
17#[allow(missing_docs)]
18pub struct KillmailAttacker {
19 pub alliance_id: Option<i64>,
20 pub character_id: Option<i64>,
21 pub corporation_id: Option<i64>,
22 pub damage_done: i64,
23 pub faction_id: Option<i64>,
24 pub final_blow: bool,
25 pub security_status: f64,
26 pub ship_type_id: Option<i64>,
27 pub weapon_type_id: Option<i64>,
28}
29
30#[derive(Debug, Deserialize)]
31#[allow(missing_docs)]
32pub struct KillmailItem {
33 pub flag: i64,
34 pub item_type_id: i64,
35 pub quantity_destroyed: Option<i64>,
36 pub quantity_dropped: Option<i64>,
37 pub singleton: i64,
38 pub items: Option<Vec<KillmailItem>>,
40}
41
42#[derive(Debug, Deserialize)]
43#[allow(missing_docs)]
44pub struct KillmailVictim {
45 pub alliance_id: Option<i64>,
46 pub character_id: Option<i64>,
47 pub corporation_id: Option<i64>,
48 pub damage_taken: i64,
49 pub faction_id: Option<i64>,
50 pub items: Option<Vec<KillmailItem>>,
51 pub position: Option<Position>,
52 pub ship_type_id: i64,
53}
54
55#[derive(Debug, Deserialize)]
56#[allow(missing_docs)]
57pub struct Killmail {
58 pub killmail_id: i64,
59 pub killmail_time: String,
60 pub solar_system_id: i64,
61 pub moon_id: Option<i64>,
62 pub war_id: Option<i64>,
63 pub attackers: Vec<KillmailAttacker>,
64 pub victim: KillmailVictim,
65}
66
67impl KillmailsGroup<'_> {
68 api_get!(
70 get_character_recent,
72 "GetCharactersCharacterIdKillmailsRecent",
73 RequestType::Authenticated,
74 Vec<RecentKillMail>,
75 (character_id: i64) => "{character_id}"
76 );
77
78 api_get!(
79 get_killmail,
81 "GetKillmailsKillmailIdKillmailHash",
82 RequestType::Public,
83 Killmail,
84 (killmail_id: i64) => "{killmail_id}",
85 (killmail_hash: &str) => "{killmail_hash}"
86 );
87
88 }
90
91impl KillmailsGroup<'_> {
92 api_get!(
93 get_corporation_recent,
95 "GetCorporationsCorporationIdKillmailsRecent",
96 RequestType::Authenticated,
97 Vec<RecentKillMail>,
98 (corporation_id: i64) => "{corporation_id}";
99 Optional(page: i32) => "page"
100 );
101}