Skip to main content

wccg_models/event/
activity_approval.rs

1use 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}