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