1use crate::live::{PrimaryPosition, Side};
2use crate::schedule::IdNameLink;
3use crate::stats::Stat;
4use serde::Deserialize;
5
6#[derive(Default, Debug, Deserialize)]
7pub struct PeopleResponse {
8 pub people: Vec<PersonFull>,
9}
10
11#[derive(Debug, Deserialize)]
13#[serde(rename_all = "camelCase")]
14pub struct PersonFull {
15 pub id: u64,
16 pub full_name: String,
17 pub primary_number: Option<String>,
18 pub birth_date: Option<String>,
19 pub current_age: Option<u8>,
20 pub birth_city: Option<String>,
21 pub birth_state_province: Option<String>,
22 pub birth_country: Option<String>,
23 pub height: Option<String>,
24 pub weight: Option<u16>,
25 pub primary_position: Option<PrimaryPosition>,
26 pub bat_side: Option<Side>,
27 pub pitch_hand: Option<Side>,
28 pub mlb_debut_date: Option<String>,
29 pub active: Option<bool>,
30 pub draft_year: Option<u16>,
31 pub current_team: Option<IdNameLink>,
32 pub nick_name: Option<String>,
33 pub pronunciation: Option<String>,
34 #[serde(default)]
37 pub stats: Vec<Stat>,
38 pub drafts: Option<Vec<DraftInfo>>,
39}
40
41#[derive(Debug, Deserialize)]
42#[serde(rename_all = "camelCase")]
43pub struct DraftInfo {
44 pub pick_round: String,
45 pub pick_number: u16,
46 pub round_pick_number: u8,
47 pub team: IdNameLink,
48 pub is_drafted: bool,
49 pub is_pass: bool,
50 pub year: String,
51}