use crate::prelude::*;
#[derive(Debug, Deserialize, Serialize, Clone)]
#[allow(missing_docs)]
pub struct CorporationPublicInfo {
pub alliance_id: Option<i32>,
pub ceo_id: Option<i32>,
pub creator_id: Option<i32>,
pub date_founded: Option<String>,
pub description: Option<String>,
pub enlisted_faction_id: Option<i32>,
pub friendly_fire: Option<String>,
pub home_station_id: Option<i32>,
pub member_count: i32,
pub name: String,
pub palette: Option<CorporationPalette>,
pub shares: Option<u64>,
pub state: Option<String>,
pub tax_rates: Option<CorporationTaxRates>,
pub ticker: Option<String>,
#[serde(rename = "type")]
pub corporation_type: Option<String>,
pub url: Option<String>,
pub war_eligible: Option<bool>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct CorporationTaxRates {
pub isk: Option<f64>,
pub loyalty_point: Option<f64>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct CorporationPalette {
pub main_color: Option<String>,
pub secondary_color: Option<String>,
pub tertiary_color: Option<String>,
}
#[derive(Debug, Deserialize)]
#[allow(missing_docs)]
pub struct CorporationHistoryItem {
pub alliance_id: Option<i32>,
pub is_deleted: Option<bool>,
pub record_id: i32,
pub start_date: String,
}
pub struct CorporationGroup<'a> {
pub(crate) esi: &'a Esi,
}
impl CorporationGroup<'_> {
api_get!(
get_public_info,
"GetCorporationsCorporationId",
RequestType::Public,
CorporationPublicInfo,
(corporation_id: i32) => "{corporation_id}"
);
api_get!(
get_history,
"GetCorporationsCorporationIdAlliancehistory",
RequestType::Public,
Vec<CorporationHistoryItem>,
(corporation_id: i32) => "{corporation_id}"
);
api_get!(
get_members,
"GetCorporationsCorporationIdMembers",
RequestType::Authenticated,
Vec<u64>,
(corporation_id: i32) => "{corporation_id}"
);
api_get!(
get_npc_corps,
"GetCorporationsNpccorps",
RequestType::Public,
Vec<u64>,
);
}