use serde::{Deserialize, Serialize};
use std::collections::BTreeMap;
use crate::serde_raw::{DcdtRaw, ValueSubTree};
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AccountRaw {
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub nonce: Option<ValueSubTree>,
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub balance: Option<ValueSubTree>,
#[serde(default)]
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
pub dcdt: BTreeMap<String, DcdtRaw>,
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub username: Option<ValueSubTree>,
#[serde(default)]
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
pub storage: BTreeMap<String, ValueSubTree>,
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<ValueSubTree>,
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub owner: Option<ValueSubTree>,
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub developer_rewards: Option<ValueSubTree>,
}