Skip to main content

wccg_models/event/
scorecard.rs

1use crate::event::rider_status::RiderStatus;
2use bson::oid::ObjectId;
3use getset::{Getters, Setters};
4use serde::{Deserialize, Serialize};
5
6#[cfg(feature = "wasm")]
7use wasm_bindgen::prelude::wasm_bindgen;
8
9#[cfg_attr(feature = "wasm", wasm_bindgen)]
10#[derive(Debug, Serialize, Deserialize, Getters, Setters)]
11#[getset(get = "pub", set = "pub")]
12#[serde(rename_all = "camelCase")]
13pub struct Scorecard {
14    #[serde(skip_serializing_if = "Option::is_none")]
15    #[serde(rename = "_id")]
16    id: Option<ObjectId>,
17
18    event_id: String,
19    registration_option_id: String,
20    rider_id: String,
21    status: RiderStatus,
22    score: Option<i32>,
23    completed_controls: Option<i32>,
24    certified: Option<bool>,
25}
26
27impl Scorecard {
28    pub fn new(
29        event_id: String,
30        registration_option_id: String,
31        rider_id: String,
32        status: RiderStatus,
33    ) -> Scorecard {
34        Scorecard {
35            id: None,
36            event_id,
37            registration_option_id,
38            rider_id,
39            status,
40            score: None,
41            completed_controls: None,
42            certified: None,
43        }
44    }
45}