wave-api 0.1.0

Typed Rust client for the Wave Accounting GraphQL API
Documentation
use crate::enums::*;
use chrono::NaiveDate;

/// Options for listing businesses.
#[derive(Debug, Clone, Default)]
pub struct ListBusinessesOptions {
    pub page: Option<i64>,
    pub page_size: Option<i64>,
}

/// Options for listing customers.
#[derive(Debug, Clone, Default)]
pub struct ListCustomersOptions {
    pub page: Option<i64>,
    pub page_size: Option<i64>,
    pub sort: Vec<CustomerSort>,
    pub email: Option<String>,
}

/// Options for listing invoices.
#[derive(Debug, Clone, Default)]
pub struct ListInvoicesOptions {
    pub page: Option<i64>,
    pub page_size: Option<i64>,
    pub sort: Vec<InvoiceSort>,
    pub status: Option<InvoiceStatus>,
    pub customer_id: Option<String>,
    pub currency: Option<CurrencyCode>,
    pub invoice_date_start: Option<NaiveDate>,
    pub invoice_date_end: Option<NaiveDate>,
    pub invoice_number: Option<String>,
}

/// Options for listing accounts.
#[derive(Debug, Clone, Default)]
pub struct ListAccountsOptions {
    pub page: Option<i64>,
    pub page_size: Option<i64>,
    pub types: Option<Vec<AccountTypeValue>>,
    pub subtypes: Option<Vec<AccountSubtypeValue>>,
    pub is_archived: Option<bool>,
}

/// Options for listing products.
#[derive(Debug, Clone, Default)]
pub struct ListProductsOptions {
    pub page: Option<i64>,
    pub page_size: Option<i64>,
    pub sort: Vec<ProductSort>,
    pub is_sold: Option<bool>,
    pub is_bought: Option<bool>,
    pub is_archived: Option<bool>,
}

/// Options for listing vendors.
#[derive(Debug, Clone, Default)]
pub struct ListVendorsOptions {
    pub page: Option<i64>,
    pub page_size: Option<i64>,
    pub email: Option<String>,
}

/// Options for listing sales taxes.
#[derive(Debug, Clone, Default)]
pub struct ListSalesTaxesOptions {
    pub page: Option<i64>,
    pub page_size: Option<i64>,
    pub is_archived: Option<bool>,
}