use serde::Deserialize;
use serde_with::{DisplayFromStr, serde_as};
use crate::models::common::Constructor;
#[derive(Deserialize)]
pub struct ConstructorStandingsData {
#[serde(rename = "StandingsTable")]
pub standings_table: ConstructorStandingsTable,
}
#[derive(Deserialize)]
#[allow(dead_code)]
pub struct ConstructorStandingsTable {
pub season: String,
pub round: String,
#[serde(rename = "StandingsLists")]
pub standings: Vec<ConstructorStandingsList>,
}
#[derive(Deserialize)]
#[serde_as]
#[allow(dead_code)]
pub struct ConstructorStandingsList {
pub season: String,
#[serde(rename = "ConstructorStandings")]
pub constructor_standings: Vec<ConstructorStandingsEntry>,
}
#[serde_as]
#[derive(Deserialize)]
#[allow(dead_code)]
pub struct ConstructorStandingsEntry {
pub position: Option<String>,
#[serde(rename = "positionText")]
pub position_text: String,
#[serde_as(as = "DisplayFromStr")]
pub points: f64,
#[serde(rename = "Constructor")]
pub constructor: Constructor,
}