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