Skip to main content

artifacts/models/
gem_transaction_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 GemTransactionSchema {
7    /// Gem transaction type.
8    #[serde(rename = "type")]
9    pub r#type: String,
10    /// Signed gem delta.
11    #[serde(rename = "gems")]
12    pub gems: i32,
13    /// Human-readable transaction description.
14    #[serde(rename = "description")]
15    pub description: String,
16    /// Additional transaction metadata.
17    #[serde(rename = "metadata")]
18    #[cfg_attr(feature = "specta", specta(type = specta_util::Unknown))]
19    pub metadata: std::collections::HashMap<String, serde_json::Value>,
20    /// Transaction creation date.
21    #[serde(rename = "created_at")]
22    pub created_at: String,
23}
24
25impl GemTransactionSchema {
26    pub fn new(
27        r#type: String,
28        gems: i32,
29        description: String,
30        metadata: std::collections::HashMap<String, serde_json::Value>,
31        created_at: String,
32    ) -> GemTransactionSchema {
33        GemTransactionSchema {
34            r#type,
35            gems,
36            description,
37            metadata,
38            created_at,
39        }
40    }
41}