wave-api 0.1.0

Typed Rust client for the Wave Accounting GraphQL API
Documentation
use chrono::{DateTime, Utc};
use serde::Deserialize;

use super::common::{Address, Currency};
use crate::enums::OrganizationalType;

/// A business in Wave.
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Business {
    pub id: String,
    pub name: String,
    pub is_personal: bool,
    pub organizational_type: Option<OrganizationalType>,
    #[serde(rename = "type")]
    pub business_type: Option<BusinessType>,
    pub subtype: Option<BusinessSubtype>,
    pub currency: Currency,
    pub timezone: Option<String>,
    pub address: Option<Address>,
    pub phone: Option<String>,
    pub fax: Option<String>,
    pub mobile: Option<String>,
    pub toll_free: Option<String>,
    pub website: Option<String>,
    pub is_archived: bool,
    pub created_at: DateTime<Utc>,
    pub modified_at: DateTime<Utc>,
}

/// Business type descriptor.
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BusinessType {
    pub name: String,
    pub value: String,
}

/// Business subtype descriptor.
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BusinessSubtype {
    pub name: String,
    pub value: String,
}