Skip to main content

wccg_models/event/
control_marking.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 ControlMarking {
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    control_id: String,
21    control_name: String,
22    rider_id: String,
23    status: RiderStatus,
24    score: Option<i32>,
25    finish_timestamp: Option<i64>,
26}
27
28impl ControlMarking {
29    pub fn new(
30        event_id: String,
31        registration_option_id: String,
32        control_id: String,
33        control_name: String,
34        rider_id: String,
35        status: RiderStatus,
36    ) -> ControlMarking {
37        ControlMarking {
38            id: None,
39            event_id,
40            registration_option_id,
41            control_id,
42            control_name,
43            rider_id,
44            status,
45            score: None,
46            finish_timestamp: None,
47        }
48    }
49}