1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
use serde::{Deserialize, Serialize};
use super::super::models;

#[derive(Debug, Serialize, Deserialize)]
pub struct DetailedActivity {
  /// The unique identifier of the activity
  #[serde(rename = "id")]
  pub id: Option<i64>,
  /// The identifier provided at upload time
  #[serde(rename = "external_id")]
  pub external_id: Option<String>,
  
  /// The identifier of the upload that resulted in this activity
  #[serde(rename = "upload_id")]
  pub upload_id: Option<i64>,
  
  #[serde(rename = "athlete")]
  pub athlete: Option<models::MetaAthlete>,
  
  /// The name of the activity
  #[serde(rename = "name")]
  pub name: Option<String>,
  
  /// The activity's distance, in meters
  #[serde(rename = "distance")]
  pub distance: Option<f32>,
  
  /// The activity's moving time, in seconds
  #[serde(rename = "moving_time")]
  pub moving_time: Option<i32>,
  
  /// The activity's elapsed time, in seconds
  #[serde(rename = "elapsed_time")]
  pub elapsed_time: Option<i32>,
  
  /// The activity's total elevation gain.
  #[serde(rename = "total_elevation_gain")]
  pub total_elevation_gain: Option<f32>,
  
  /// The activity's highest elevation, in meters
  #[serde(rename = "elev_high")]
  pub elev_high: Option<f32>,
  
  /// The activity's lowest elevation, in meters
  #[serde(rename = "elev_low")]
  pub elev_low: Option<f32>,
  
  #[serde(rename = "type")]
  pub activity_type: Option<models::ActivityType>,
  
  /// The time at which the activity was started.
  #[serde(rename = "start_date")]
  pub start_date: Option<String>,
  
  /// The time at which the activity was started in the local timezone.
  #[serde(rename = "start_date_local")]
  pub start_date_local: Option<String>,
  
  /// The timezone of the activity
  #[serde(rename = "timezone")]
  pub timezone: Option<String>,

  /// The UTC offset of the local timezone
  #[serde(rename = "utc_offset")]
  pub utc_offset: Option<f32>,
  
  //#[serde(rename = "start_latlng")]
  //start_latlng: Option<models::LatLng>,
  //#[serde(rename = "end_latlng")]
  //end_latlng: Option<models::LatLng>,
  
  /// The number of achievements gained during this activity
  #[serde(rename = "achievement_count")]
  pub achievement_count: Option<i32>,
  
  /// The number of kudos given for this activity
  #[serde(rename = "kudos_count")]
  pub kudos_count: Option<i32>,
  
  /// The number of comments for this activity
  #[serde(rename = "comment_count")]
  pub comment_count: Option<i32>,
  
  /// The number of athletes for taking part in a group activity
  #[serde(rename = "athlete_count")]
  pub athlete_count: Option<i32>,
  
  /// The number of Instagram photos for this activity
  #[serde(rename = "photo_count")]
  pub photo_count: Option<i32>,
  
  /// The number of Instagram and Strava photos for this activity
  #[serde(rename = "total_photo_count")]
  pub total_photo_count: Option<i32>,
  
  #[serde(rename = "map")]
  pub map: Option<models::PolylineMap>,
  
  /// Whether this activity was recorded on a training machine
  #[serde(rename = "trainer")]
  pub trainer: Option<bool>,
  
  /// Whether this activity is a commute
  #[serde(rename = "commute")]
  pub commute: Option<bool>,
  
  /// Whether this activity was created manually
  #[serde(rename = "manual")]
  pub manual: Option<bool>,
  
  /// Whether this activity is private
  #[serde(rename = "private")]
  pub private: Option<bool>,
  
  /// Whether this activity is flagged
  #[serde(rename = "flagged")]
  pub flagged: Option<bool>,
  
  /// The activity's workout type
  #[serde(rename = "workout_type")]
  pub workout_type: Option<i32>,
  
  /// The unique identifier of the upload in string format
  #[serde(rename = "upload_id_str")]
  pub upload_id_str: Option<String>,
  
  /// The activity's average speed, in meters per second
  #[serde(rename = "average_speed")]
  pub average_speed: Option<f32>,
  
  /// The activity's max speed, in meters per second
  #[serde(rename = "max_speed")]
  pub max_speed: Option<f32>,
  
  /// Whether the logged-in athlete has kudoed this activity
  #[serde(rename = "has_kudoed")]
  pub has_kudoed: Option<bool>,
  
  /// The id of the gear for the activity
  #[serde(rename = "gear_id")]
  pub gear_id: Option<String>,
  
  /// The total work done in kilojoules during this activity. Rides only
  #[serde(rename = "kilojoules")]
  pub kilojoules: Option<f32>,
  
  /// Average power output in watts during this activity. Rides only
  #[serde(rename = "average_watts")]
  pub average_watts: Option<f32>,
  
  /// Whether the watts are from a power meter, false if estimated
  #[serde(rename = "device_watts")]
  pub device_watts: Option<bool>,
  
  /// Rides with power meter data only
  #[serde(rename = "max_watts")]
  pub max_watts: Option<i32>,
  
  /// Similar to Normalized Power. Rides with power meter data only
  #[serde(rename = "weighted_average_watts")]
  weighted_average_watts: Option<i32>,
  
  /// The description of the activity
  #[serde(rename = "description")]
  pub description: Option<String>,
  
  /*#[serde(rename = "photos")] //TODO
  photos: Option<models::PhotosSummary>,
  #[serde(rename = "gear")]
  gear: Option<models::SummaryGear>,*/
  
  /// The number of kilocalories consumed during this activity
  #[serde(rename = "calories")]
  pub calories: Option<f32>,
  
  //#[serde(rename = "segment_efforts")]  //TODO: Do we need this?
  //segment_efforts: Option<Vec<::models::DetailedSegmentEffort>>,
  
  /// The name of the device used to record the activity
  #[serde(rename = "device_name")]
  pub device_name: Option<String>,
  
  /// The token used to embed a Strava activity
  #[serde(rename = "embed_token")]
  pub embed_token: Option<String>,
  
  //TODO: Complete these
  /*/// The splits of this activity in metric units (for runs)
  #[serde(rename = "splits_metric")]
  splits_metric: Option<Vec<::models::Split>>,
  /// The splits of this activity in imperial units (for runs)
  #[serde(rename = "splits_standard")]
  splits_standard: Option<Vec<::models::Split>>,
  #[serde(rename = "laps")]
  laps: Option<Vec<::models::Lap>>,
  #[serde(rename = "best_efforts")]
  best_efforts: Option<Vec<::models::DetailedSegmentEffort>>*/
}