use derive_getters::Getters;
use serde::Deserialize;
use crate::models::prelude::*;
#[derive(Debug, Deserialize, Clone, Getters)]
pub struct EffectLink {
operation: Link,
succeeds: Link,
precedes: Link,
}
#[derive(Debug, Deserialize, Clone, Getters)]
pub struct Effect {
#[serde(rename = "_links")]
pub links: EffectLink,
pub id: String,
pub paging_token: String,
pub account: String,
#[serde(rename = "type")]
pub effect_type: String,
pub type_i: u32,
pub created_at: String,
pub starting_balance: Option<String>,
pub asset_type: Option<String>,
pub amount: Option<String>,
}
#[derive(Debug, Deserialize, Clone, Getters)]
pub struct EffectsResponse {
#[serde(rename = "_links")]
links: ResponseLinks,
#[serde(rename = "_embedded")]
embedded: Embedded<Effect>,
}
impl Response for EffectsResponse {
fn from_json(json: String) -> Result<EffectsResponse, String> {
serde_json::from_str(&json).map_err(|e| e.to_string())
}
}