Skip to main content

strava_wrapper/models/
athlete.rs

1//! Athlete resource types.
2
3use super::club::SummaryClub;
4use super::gear::SummaryGear;
5use chrono::{DateTime, Utc};
6use serde::{Deserialize, Serialize};
7
8#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
9pub struct SimpleAthlete {
10    pub id: i64,
11    pub resource_state: u8,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
15pub struct MetaAthlete {
16    pub id: Option<i64>,
17}
18
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
20pub struct SummaryAthlete {
21    pub id: Option<i64>,
22    pub resource_state: Option<i32>,
23    pub firstname: Option<String>,
24    pub lastname: Option<String>,
25    pub profile_medium: Option<String>,
26    pub profile: Option<String>,
27    pub city: Option<String>,
28    pub state: Option<String>,
29    pub country: Option<String>,
30    pub sex: Option<String>,
31    #[deprecated(note = "Use summit instead")]
32    pub premium: Option<bool>,
33    pub summit: Option<bool>,
34    pub created_at: Option<DateTime<Utc>>,
35    pub updated_at: Option<DateTime<Utc>>,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
39pub struct DetailedAthlete {
40    pub id: Option<i64>,
41    pub resource_state: Option<i32>,
42    pub firstname: Option<String>,
43    pub lastname: Option<String>,
44    pub profile_medium: Option<String>,
45    pub profile: Option<String>,
46    pub city: Option<String>,
47    pub state: Option<String>,
48    pub country: Option<String>,
49    pub sex: Option<String>,
50    #[deprecated(note = "Use summit instead")]
51    pub premium: Option<bool>,
52    pub summit: Option<bool>,
53    pub created_at: Option<DateTime<Utc>>,
54    pub updated_at: Option<DateTime<Utc>>,
55    pub follower_count: Option<i32>,
56    pub friend_count: Option<i32>,
57    pub measurement_preference: Option<String>,
58    pub ftp: Option<i32>,
59    pub weight: Option<f32>,
60    pub clubs: Option<Vec<SummaryClub>>,
61    pub bikes: Option<Vec<SummaryGear>>,
62    pub shoes: Option<Vec<SummaryGear>>,
63}