1use crate::Isk;
2use chrono::{DateTime, NaiveDate, Utc};
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct EsiAssetItem {
8 pub item_id: i64,
9 pub type_id: i32,
10 pub location_id: i64,
11 pub location_type: String,
12 pub location_flag: String,
13 pub quantity: i32,
14 #[serde(default)]
15 pub is_singleton: bool,
16 #[serde(default)]
17 pub is_blueprint_copy: Option<bool>,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize)]
22pub struct EsiWalletJournalEntry {
23 pub id: i64,
24 pub date: DateTime<Utc>,
25 pub ref_type: String,
26 #[serde(default)]
27 pub amount: Option<Isk>,
28 #[serde(default)]
29 pub balance: Option<Isk>,
30 #[serde(default)]
31 pub description: Option<String>,
32 #[serde(default)]
33 pub first_party_id: Option<i64>,
34 #[serde(default)]
35 pub second_party_id: Option<i64>,
36 #[serde(default)]
37 pub reason: Option<String>,
38 #[serde(default)]
39 pub context_id: Option<i64>,
40 #[serde(default)]
41 pub context_id_type: Option<String>,
42 #[serde(default)]
43 pub tax: Option<Isk>,
44 #[serde(default)]
45 pub tax_receiver_id: Option<i64>,
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize)]
50pub struct EsiWalletTransaction {
51 pub transaction_id: i64,
52 pub date: DateTime<Utc>,
53 pub type_id: i32,
54 pub location_id: i64,
55 pub unit_price: Isk,
56 pub quantity: i32,
57 pub client_id: i64,
58 pub is_buy: bool,
59 pub is_personal: bool,
60 pub journal_ref_id: i64,
61}
62
63#[derive(Debug, Clone, Serialize, Deserialize)]
65pub struct EsiLoyaltyPoints {
66 pub corporation_id: i64,
67 pub loyalty_points: i32,
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize)]
72pub struct EsiLoyaltyStoreOffer {
73 pub offer_id: i32,
74 pub type_id: i32,
75 pub quantity: i32,
76 pub lp_cost: i32,
77 pub isk_cost: i64,
78 #[serde(default)]
79 pub ak_cost: Option<i32>,
80 #[serde(default)]
81 pub required_items: Vec<EsiLoyaltyRequiredItem>,
82}
83
84#[derive(Debug, Clone, Serialize, Deserialize)]
86pub struct EsiLoyaltyRequiredItem {
87 pub type_id: i32,
88 pub quantity: i32,
89}
90
91#[derive(Debug, Clone, Serialize, Deserialize)]
93pub struct EsiPlanetSummary {
94 pub solar_system_id: i32,
95 pub planet_id: i32,
96 pub planet_type: String,
97 pub num_pins: i32,
98 pub last_update: DateTime<Utc>,
99 pub upgrade_level: i32,
100 #[serde(default)]
101 pub owner_id: Option<i64>,
102}
103
104#[derive(Debug, Clone, Serialize, Deserialize)]
107pub struct EsiPlanetDetail {
108 #[serde(default)]
109 pub links: Vec<serde_json::Value>,
110 #[serde(default)]
111 pub pins: Vec<serde_json::Value>,
112 #[serde(default)]
113 pub routes: Vec<serde_json::Value>,
114}
115
116#[derive(Debug, Clone, Serialize, Deserialize)]
117pub struct EsiDogmaAttribute {
118 pub attribute_id: i32,
119 pub name: String,
120 pub published: bool,
121 #[serde(default)]
122 pub description: Option<String>,
123 #[serde(default)]
124 pub icon_id: Option<i32>,
125 #[serde(default)]
126 pub default_value: f64,
127 #[serde(default)]
128 pub display_name: Option<String>,
129 #[serde(default)]
130 pub unit_id: Option<i32>,
131 #[serde(default)]
132 pub stackable: bool,
133 #[serde(default)]
134 pub high_is_good: bool,
135}
136
137#[derive(Debug, Clone, Serialize, Deserialize)]
138#[allow(clippy::struct_excessive_bools)]
139pub struct EsiDogmaEffect {
140 pub effect_id: i32,
141 pub name: String,
142 pub published: bool,
143 #[serde(default)]
144 pub description: Option<String>,
145 #[serde(default)]
146 pub icon_id: Option<i32>,
147 #[serde(default)]
148 pub display_name: Option<String>,
149 #[serde(default)]
150 pub effect_category: Option<i32>,
151 #[serde(default)]
152 pub is_assistance: bool,
153 #[serde(default)]
154 pub is_offensive: bool,
155 #[serde(default)]
156 pub is_warp_safe: bool,
157 #[serde(default)]
158 pub pre_expression: Option<i32>,
159 #[serde(default)]
160 pub post_expression: Option<i32>,
161 #[serde(default)]
162 pub duration_attribute_id: Option<i32>,
163 #[serde(default)]
164 pub tracking_speed_attribute_id: Option<i32>,
165 #[serde(default)]
166 pub discharge_attribute_id: Option<i32>,
167 #[serde(default)]
168 pub range_attribute_id: Option<i32>,
169 #[serde(default)]
170 pub falloff_attribute_id: Option<i32>,
171 #[serde(default)]
172 pub modifiers: Vec<EsiDogmaModifier>,
173}
174
175#[derive(Debug, Clone, Serialize, Deserialize)]
176pub struct EsiDogmaModifier {
177 #[serde(default)]
178 pub domain: Option<String>,
179 #[serde(default)]
180 pub effect_id: Option<i32>,
181 #[serde(default)]
182 pub func: Option<String>,
183 #[serde(default)]
184 pub modified_attribute_id: Option<i32>,
185 #[serde(default)]
186 pub modifying_attribute_id: Option<i32>,
187 #[serde(default)]
188 pub operator: Option<i32>,
189}
190
191#[derive(Debug, Clone, Serialize, Deserialize)]
192pub struct EsiDynamicItem {
193 pub created_by: i64,
194 pub mutator_type_id: i32,
195 pub source_type_id: i32,
196 #[serde(default)]
197 pub dogma_attributes: Vec<EsiDogmaAttributeValue>,
198 #[serde(default)]
199 pub dogma_effects: Vec<EsiDogmaEffectRef>,
200}
201
202#[derive(Debug, Clone, Serialize, Deserialize)]
203pub struct EsiDogmaAttributeValue {
204 pub attribute_id: i32,
205 pub value: f64,
206}
207
208#[derive(Debug, Clone, Serialize, Deserialize)]
209pub struct EsiDogmaEffectRef {
210 pub effect_id: i32,
211 pub is_default: bool,
212}
213
214#[derive(Debug, Clone, Serialize, Deserialize)]
215pub struct EsiWar {
216 pub id: i32,
217 pub declared: DateTime<Utc>,
218 pub mutual: bool,
219 pub open_for_allies: bool,
220 pub aggressor: EsiWarParty,
221 pub defender: EsiWarParty,
222 #[serde(default)]
223 pub started: Option<DateTime<Utc>>,
224 #[serde(default)]
225 pub finished: Option<DateTime<Utc>>,
226 #[serde(default)]
227 pub retracted: Option<DateTime<Utc>>,
228 #[serde(default)]
229 pub allies: Vec<EsiWarAlly>,
230}
231
232#[derive(Debug, Clone, Serialize, Deserialize)]
233pub struct EsiWarParty {
234 pub isk_destroyed: Isk,
235 pub ships_killed: i32,
236 #[serde(default)]
237 pub alliance_id: Option<i64>,
238 #[serde(default)]
239 pub corporation_id: Option<i64>,
240}
241
242#[derive(Debug, Clone, Serialize, Deserialize)]
243pub struct EsiWarAlly {
244 #[serde(default)]
245 pub alliance_id: Option<i64>,
246 #[serde(default)]
247 pub corporation_id: Option<i64>,
248}
249
250#[derive(Debug, Clone, Serialize, Deserialize)]
251pub struct EsiFwFactionStats {
252 pub faction_id: i32,
253 pub pilots: i32,
254 pub systems_controlled: i32,
255 pub kills: EsiFwTotals,
256 pub victory_points: EsiFwTotals,
257}
258
259#[derive(Debug, Clone, Serialize, Deserialize)]
260pub struct EsiFwTotals {
261 pub last_week: i32,
262 pub total: i32,
263 pub yesterday: i32,
264}
265
266#[derive(Debug, Clone, Serialize, Deserialize)]
267pub struct EsiFwSystem {
268 pub solar_system_id: i32,
269 pub contested: String,
270 pub occupier_faction_id: i32,
271 pub owner_faction_id: i32,
272 pub victory_points: i32,
273 pub victory_points_threshold: i32,
274}
275
276#[derive(Debug, Clone, Serialize, Deserialize)]
277pub struct EsiFwLeaderboards {
278 pub kills: EsiFwLeaderboardCategory,
279 pub victory_points: EsiFwLeaderboardCategory,
280}
281
282#[derive(Debug, Clone, Serialize, Deserialize)]
283pub struct EsiFwLeaderboardCategory {
284 #[serde(default)]
285 pub active_total: Vec<EsiFwLeaderboardEntry>,
286 #[serde(default)]
287 pub last_week: Vec<EsiFwLeaderboardEntry>,
288 #[serde(default)]
289 pub yesterday: Vec<EsiFwLeaderboardEntry>,
290}
291
292#[derive(Debug, Clone, Serialize, Deserialize)]
293pub struct EsiFwLeaderboardEntry {
294 pub amount: i32,
295 pub id: i32,
296}
297
298#[derive(Debug, Clone, Serialize, Deserialize)]
299pub struct EsiFwWar {
300 pub against_id: i32,
301 pub faction_id: i32,
302}
303
304#[derive(Debug, Clone, Serialize, Deserialize)]
305pub struct EsiInsurancePrice {
306 pub type_id: i32,
307 #[serde(default)]
308 pub levels: Vec<EsiInsuranceLevel>,
309}
310
311#[derive(Debug, Clone, Serialize, Deserialize)]
312pub struct EsiInsuranceLevel {
313 pub cost: Isk,
314 pub name: String,
315 pub payout: Isk,
316}
317
318#[derive(Debug, Clone, Serialize, Deserialize)]
320pub struct EsiMiningEntry {
321 pub date: NaiveDate,
322 pub solar_system_id: i32,
323 pub type_id: i32,
324 pub quantity: i64,
325}
326
327#[derive(Debug, Clone, Serialize, Deserialize)]
329pub struct EsiFwCharacterLeaderboards {
330 pub kills: EsiFwLeaderboardCategory,
331 pub victory_points: EsiFwLeaderboardCategory,
332}
333
334#[derive(Debug, Clone, Serialize, Deserialize)]
336pub struct EsiFwCorporationLeaderboards {
337 pub kills: EsiFwLeaderboardCategory,
338 pub victory_points: EsiFwLeaderboardCategory,
339}