Skip to main content

esi_openapi/groups/
corporation.rs

1use crate::prelude::*;
2
3#[derive(Debug, Deserialize, Serialize, Clone)]
4#[allow(missing_docs)]
5pub struct CorporationPublicInfo {
6    pub alliance_id: Option<i32>,
7    pub ceo_id: Option<i32>,
8    pub creator_id: Option<i32>,
9    pub date_founded: Option<String>,
10    pub description: Option<String>,
11    pub enlisted_faction_id: Option<i32>,
12    /// `legal` or `illegal`.
13    pub friendly_fire: Option<String>,
14    pub home_station_id: Option<i32>,
15    pub member_count: i32,
16    pub name: String,
17    pub palette: Option<CorporationPalette>,
18    pub shares: Option<u64>,
19    /// `active` or `closed`.
20    pub state: Option<String>,
21    pub tax_rates: Option<CorporationTaxRates>,
22    pub ticker: Option<String>,
23    /// `player_owned` or `npc_owned`.
24    #[serde(rename = "type")]
25    pub corporation_type: Option<String>,
26    pub url: Option<String>,
27    pub war_eligible: Option<bool>,
28}
29
30/// Corporation tax rates, as percentages (0.0 - 100.0).
31#[derive(Debug, Deserialize, Serialize, Clone)]
32pub struct CorporationTaxRates {
33    /// ISK tax rate.
34    pub isk: Option<f64>,
35    /// Loyalty point tax rate.
36    pub loyalty_point: Option<f64>,
37}
38
39/// Corporation palette colors (`#rrggbb`).
40#[derive(Debug, Deserialize, Serialize, Clone)]
41pub struct CorporationPalette {
42    /// Main color.
43    pub main_color: Option<String>,
44    /// Secondary color.
45    pub secondary_color: Option<String>,
46    /// Tertiary color.
47    pub tertiary_color: Option<String>,
48}
49
50#[derive(Debug, Deserialize)]
51#[allow(missing_docs)]
52pub struct CorporationHistoryItem {
53    pub alliance_id: Option<i32>,
54    pub is_deleted: Option<bool>,
55    pub record_id: i32,
56    pub start_date: String,
57}
58
59/// Endpoints for Corporation
60pub struct CorporationGroup<'a> {
61    pub(crate) esi: &'a Esi,
62}
63
64impl CorporationGroup<'_> {
65    api_get!(
66        /// Get a corporation's public info.
67        get_public_info,
68        "GetCorporationsCorporationId",
69        RequestType::Public,
70        CorporationPublicInfo,
71        (corporation_id: i32) => "{corporation_id}"
72    );
73
74    api_get!(
75        /// Get a corporation's alliance history.
76        get_history,
77        "GetCorporationsCorporationIdAlliancehistory",
78        RequestType::Public,
79        Vec<CorporationHistoryItem>,
80        (corporation_id: i32) => "{corporation_id}"
81    );
82
83    api_get!(
84        /// Get a corporation's member list.
85        ///
86        /// Requires the auth'd character to be in the corporation.
87        get_members,
88        "GetCorporationsCorporationIdMembers",
89        RequestType::Authenticated,
90        Vec<u64>,
91        (corporation_id: i32) => "{corporation_id}"
92    );
93
94    api_get!(
95        /// Get a list of NPC corporations.
96        get_npc_corps,
97        "GetCorporationsNpccorps",
98        RequestType::Public,
99        Vec<u64>,
100    );
101
102    // more endpoints ...
103}