/* 
 * EVE Swagger Interface
 *
 * An OpenAPI for EVE Online
 *
 * OpenAPI spec version: 1.3.8
 * 
 * Generated by: https://github.com/swagger-api/swagger-codegen.git
 */

/// GetFleetsFleetIdMembers200Ok : 200 ok object

#[allow(unused_imports)]
use serde_json::Value;

#[derive(Debug, Serialize, Deserialize)]
pub struct GetFleetsFleetIdMembers200Ok {
  /// character_id integer
  #[serde(rename = "character_id")]
  character_id: i32,
  /// join_time string
  #[serde(rename = "join_time")]
  join_time: String,
  /// Member’s role in fleet
  #[serde(rename = "role")]
  role: String,
  /// Localized role names
  #[serde(rename = "role_name")]
  role_name: String,
  /// ship_type_id integer
  #[serde(rename = "ship_type_id")]
  ship_type_id: i32,
  /// Solar system the member is located in
  #[serde(rename = "solar_system_id")]
  solar_system_id: i32,
  /// ID of the squad the member is in. If not applicable, will be set to -1
  #[serde(rename = "squad_id")]
  squad_id: i64,
  /// Station in which the member is docked in, if applicable
  #[serde(rename = "station_id")]
  station_id: Option<i64>,
  /// Whether the member take fleet warps
  #[serde(rename = "takes_fleet_warp")]
  takes_fleet_warp: bool,
  /// ID of the wing the member is in. If not applicable, will be set to -1
  #[serde(rename = "wing_id")]
  wing_id: i64
}

impl GetFleetsFleetIdMembers200Ok {
  /// 200 ok object
  pub fn new(character_id: i32, join_time: String, role: String, role_name: String, ship_type_id: i32, solar_system_id: i32, squad_id: i64, takes_fleet_warp: bool, wing_id: i64) -> GetFleetsFleetIdMembers200Ok {
    GetFleetsFleetIdMembers200Ok {
      character_id: character_id,
      join_time: join_time,
      role: role,
      role_name: role_name,
      ship_type_id: ship_type_id,
      solar_system_id: solar_system_id,
      squad_id: squad_id,
      station_id: None,
      takes_fleet_warp: takes_fleet_warp,
      wing_id: wing_id
    }
  }

  pub fn set_character_id(&mut self, character_id: i32) {
    self.character_id = character_id;
  }

  pub fn with_character_id(mut self, character_id: i32) -> GetFleetsFleetIdMembers200Ok {
    self.character_id = character_id;
    self
  }

  pub fn character_id(&self) -> &i32 {
    &self.character_id
  }


  pub fn set_join_time(&mut self, join_time: String) {
    self.join_time = join_time;
  }

  pub fn with_join_time(mut self, join_time: String) -> GetFleetsFleetIdMembers200Ok {
    self.join_time = join_time;
    self
  }

  pub fn join_time(&self) -> &String {
    &self.join_time
  }


  pub fn set_role(&mut self, role: String) {
    self.role = role;
  }

  pub fn with_role(mut self, role: String) -> GetFleetsFleetIdMembers200Ok {
    self.role = role;
    self
  }

  pub fn role(&self) -> &String {
    &self.role
  }


  pub fn set_role_name(&mut self, role_name: String) {
    self.role_name = role_name;
  }

  pub fn with_role_name(mut self, role_name: String) -> GetFleetsFleetIdMembers200Ok {
    self.role_name = role_name;
    self
  }

  pub fn role_name(&self) -> &String {
    &self.role_name
  }


  pub fn set_ship_type_id(&mut self, ship_type_id: i32) {
    self.ship_type_id = ship_type_id;
  }

  pub fn with_ship_type_id(mut self, ship_type_id: i32) -> GetFleetsFleetIdMembers200Ok {
    self.ship_type_id = ship_type_id;
    self
  }

  pub fn ship_type_id(&self) -> &i32 {
    &self.ship_type_id
  }


  pub fn set_solar_system_id(&mut self, solar_system_id: i32) {
    self.solar_system_id = solar_system_id;
  }

  pub fn with_solar_system_id(mut self, solar_system_id: i32) -> GetFleetsFleetIdMembers200Ok {
    self.solar_system_id = solar_system_id;
    self
  }

  pub fn solar_system_id(&self) -> &i32 {
    &self.solar_system_id
  }


  pub fn set_squad_id(&mut self, squad_id: i64) {
    self.squad_id = squad_id;
  }

  pub fn with_squad_id(mut self, squad_id: i64) -> GetFleetsFleetIdMembers200Ok {
    self.squad_id = squad_id;
    self
  }

  pub fn squad_id(&self) -> &i64 {
    &self.squad_id
  }


  pub fn set_station_id(&mut self, station_id: i64) {
    self.station_id = Some(station_id);
  }

  pub fn with_station_id(mut self, station_id: i64) -> GetFleetsFleetIdMembers200Ok {
    self.station_id = Some(station_id);
    self
  }

  pub fn station_id(&self) -> Option<&i64> {
    self.station_id.as_ref()
  }

  pub fn reset_station_id(&mut self) {
    self.station_id = None;
  }

  pub fn set_takes_fleet_warp(&mut self, takes_fleet_warp: bool) {
    self.takes_fleet_warp = takes_fleet_warp;
  }

  pub fn with_takes_fleet_warp(mut self, takes_fleet_warp: bool) -> GetFleetsFleetIdMembers200Ok {
    self.takes_fleet_warp = takes_fleet_warp;
    self
  }

  pub fn takes_fleet_warp(&self) -> &bool {
    &self.takes_fleet_warp
  }


  pub fn set_wing_id(&mut self, wing_id: i64) {
    self.wing_id = wing_id;
  }

  pub fn with_wing_id(mut self, wing_id: i64) -> GetFleetsFleetIdMembers200Ok {
    self.wing_id = wing_id;
    self
  }

  pub fn wing_id(&self) -> &i64 {
    &self.wing_id
  }


}



