Skip to main content

artifacts/models/
ge_order_schema.rs

1use crate::models;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5#[cfg_attr(feature = "specta", derive(specta::Type))]
6pub struct GeOrderSchema {
7    /// Order id.
8    #[serde(rename = "id")]
9    pub id: String,
10    /// Order type (sell or buy).
11    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
12    pub r#type: Option<models::GeOrderType>,
13    /// Account linked to the order.
14    #[serde(rename = "account", skip_serializing_if = "Option::is_none")]
15    pub account: Option<String>,
16    /// Item code.
17    #[serde(rename = "code")]
18    pub code: String,
19    /// Item quantity.
20    #[serde(rename = "quantity")]
21    pub quantity: u32,
22    /// Item price per unit.
23    #[serde(rename = "price")]
24    pub price: u32,
25    /// Order created at.
26    #[serde(rename = "created_at")]
27    pub created_at: String,
28}
29
30impl GeOrderSchema {
31    pub fn new(
32        id: String,
33        code: String,
34        quantity: u32,
35        price: u32,
36        created_at: String,
37    ) -> GeOrderSchema {
38        GeOrderSchema {
39            id,
40            r#type: None,
41            account: None,
42            code,
43            quantity,
44            price,
45            created_at,
46        }
47    }
48}