use serde::{Deserialize, Serialize};
#[cfg(feature = "schema-discovery")]
use std::collections::HashMap;
#[derive(Default, Debug, Clone, Serialize, Deserialize, PartialEq)]
#[cfg_attr(feature = "tauri", derive(specta::Type))]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
pub struct SessionInfoData {
pub current_session_num: i32,
pub sessions: Vec<Session>,
#[cfg(feature = "schema-discovery")]
#[serde(flatten)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
#[cfg_attr(feature = "tauri", specta(skip))]
pub unknown_fields: HashMap<String, serde_yaml_ng::Value>,
}
#[derive(Default, Debug, Clone, Serialize, Deserialize, PartialEq)]
#[cfg_attr(feature = "tauri", derive(specta::Type))]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
pub struct Session {
pub session_num: i32,
pub session_laps: String,
pub session_time: String,
pub session_num_laps_to_avg: Option<i32>,
pub session_type: String,
pub session_name: Option<String>,
pub session_track_rubber_state: Option<String>,
pub session_sub_type: Option<String>,
pub session_skipped: Option<i32>,
pub session_run_groups_used: Option<i32>,
pub session_enforce_tire_compound_change: Option<i32>,
#[cfg_attr(feature = "tauri", specta(skip))]
pub results_positions: Option<Vec<serde_yaml_ng::Value>>,
#[cfg_attr(feature = "tauri", specta(skip))]
pub results_fastest_lap: Option<Vec<serde_yaml_ng::Value>>,
pub results_average_lap_time: Option<f64>,
pub results_num_caution_flags: Option<i32>,
pub results_num_caution_laps: Option<i32>,
pub results_num_lead_changes: Option<i32>,
pub results_laps_complete: Option<i32>,
pub results_official: Option<i32>,
#[cfg(feature = "schema-discovery")]
#[serde(flatten)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
#[cfg_attr(feature = "tauri", specta(skip))]
pub unknown_fields: HashMap<String, serde_yaml_ng::Value>,
}
#[derive(Default, Debug, Clone, Serialize, Deserialize, PartialEq)]
#[cfg_attr(feature = "tauri", derive(specta::Type))]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
pub struct QualifyResultsInfo {
pub results: Option<Vec<QualifyResult>>,
#[cfg(feature = "schema-discovery")]
#[serde(flatten)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
#[cfg_attr(feature = "tauri", specta(skip))]
pub unknown_fields: HashMap<String, serde_yaml_ng::Value>,
}
#[derive(Default, Debug, Clone, Serialize, Deserialize, PartialEq)]
#[cfg_attr(feature = "tauri", derive(specta::Type))]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
pub struct QualifyResult {
pub position: Option<i32>,
pub class_position: Option<i32>,
pub car_idx: Option<i32>,
pub fastest_lap: Option<i32>,
pub fastest_time: Option<f64>,
#[cfg(feature = "schema-discovery")]
#[serde(flatten)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
#[cfg_attr(feature = "tauri", specta(skip))]
pub unknown_fields: HashMap<String, serde_yaml_ng::Value>,
}