strava_wrapper/models/
athlete.rs1use 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}