wccg_models/event/
scorecard.rs1use 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}