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 WeekendInfo {
pub track_name: String,
#[serde(rename = "TrackID")]
pub track_id: Option<i32>,
pub track_length: String,
pub track_length_official: Option<String>,
pub track_display_name: String,
pub track_display_short_name: Option<String>,
pub track_config_name: Option<String>,
pub track_city: Option<String>,
pub track_state: Option<String>,
pub track_country: Option<String>,
pub track_altitude: Option<String>,
pub track_latitude: Option<String>,
pub track_longitude: Option<String>,
pub track_north_offset: Option<String>,
pub track_num_turns: Option<i32>,
pub track_pit_speed_limit: Option<String>,
pub track_pace_speed: Option<String>,
pub track_num_pit_stalls: Option<i32>,
pub track_type: Option<String>,
pub track_direction: Option<String>,
pub track_weather_type: Option<String>,
pub track_skies: Option<String>,
pub track_surface_temp: Option<String>,
pub track_surface_temp_crew: Option<String>,
pub track_air_temp: Option<String>,
pub track_air_pressure: Option<String>,
pub track_air_density: Option<String>,
pub track_wind_vel: Option<String>,
pub track_wind_dir: Option<String>,
pub track_relative_humidity: Option<String>,
pub track_fog_level: Option<String>,
pub track_precipitation: Option<String>,
pub track_cleanup: Option<i32>,
pub track_dynamic_track: Option<i32>,
pub track_version: Option<String>,
#[serde(rename = "SeriesID")]
pub series_id: Option<i32>,
#[serde(rename = "SeasonID")]
pub season_id: Option<i32>,
#[serde(rename = "SessionID")]
pub session_id: Option<i32>,
#[serde(rename = "SubSessionID")]
pub sub_session_id: Option<i32>,
#[serde(rename = "LeagueID")]
pub league_id: Option<i32>,
pub official: Option<i32>,
pub race_week: Option<i32>,
pub event_type: Option<String>,
pub category: Option<String>,
pub sim_mode: Option<String>,
pub team_racing: Option<i32>,
pub min_drivers: Option<i32>,
pub max_drivers: Option<i32>,
#[serde(rename = "DCRuleSet")]
pub dc_rule_set: Option<String>,
pub qualifier_must_start_race: Option<i32>,
pub num_car_classes: Option<i32>,
pub num_car_types: Option<i32>,
pub heat_racing: Option<i32>,
pub build_type: Option<String>,
pub build_target: Option<String>,
pub build_version: Option<String>,
pub race_farm: Option<String>,
pub telemetry_options: Option<TelemetryOptions>,
pub weekend_options: Option<WeekendOptions>,
#[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 TelemetryOptions {
pub telemetry_disk_file: Option<String>,
#[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 WeekendOptions {
pub num_starters: Option<i32>,
pub starting_grid: Option<String>,
pub qualify_scoring: Option<String>,
pub course_cautions: Option<String>,
pub standing_start: Option<i32>,
pub short_parade_lap: Option<i32>,
pub restarts: Option<String>,
pub weather_type: Option<String>,
pub skies: Option<String>,
pub wind_direction: Option<String>,
pub wind_speed: Option<String>,
pub weather_temp: Option<String>,
pub relative_humidity: Option<String>,
pub fog_level: Option<String>,
pub time_of_day: Option<String>,
pub date: Option<String>,
pub earth_rotation_speedup_factor: Option<i32>,
pub unofficial: Option<i32>,
pub commercial_mode: Option<String>,
pub night_mode: Option<String>,
pub is_fixed_setup: Option<i32>,
pub strict_laps_checking: Option<String>,
pub has_open_registration: Option<i32>,
pub hardcore_level: Option<i32>,
pub num_joker_laps: Option<i32>,
pub incident_limit: Option<String>,
pub fast_repairs_limit: Option<String>,
pub green_white_checkered_limit: 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>,
}