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")]
12    pub r#type: 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        r#type: models::GeOrderType,
34        code: String,
35        quantity: u32,
36        price: u32,
37        created_at: String,
38    ) -> GeOrderSchema {
39        GeOrderSchema {
40            id,
41            r#type,
42            account: None,
43            code,
44            quantity,
45            price,
46            created_at,
47        }
48    }
49}