Skip to main content

wave_api/
options.rs

1use crate::enums::*;
2use chrono::NaiveDate;
3
4/// Options for listing businesses.
5#[derive(Debug, Clone, Default)]
6pub struct ListBusinessesOptions {
7    pub page: Option<i64>,
8    pub page_size: Option<i64>,
9}
10
11/// Options for listing customers.
12#[derive(Debug, Clone, Default)]
13pub struct ListCustomersOptions {
14    pub page: Option<i64>,
15    pub page_size: Option<i64>,
16    pub sort: Vec<CustomerSort>,
17    pub email: Option<String>,
18}
19
20/// Options for listing invoices.
21#[derive(Debug, Clone, Default)]
22pub struct ListInvoicesOptions {
23    pub page: Option<i64>,
24    pub page_size: Option<i64>,
25    pub sort: Vec<InvoiceSort>,
26    pub status: Option<InvoiceStatus>,
27    pub customer_id: Option<String>,
28    pub currency: Option<CurrencyCode>,
29    pub invoice_date_start: Option<NaiveDate>,
30    pub invoice_date_end: Option<NaiveDate>,
31    pub invoice_number: Option<String>,
32}
33
34/// Options for listing accounts.
35#[derive(Debug, Clone, Default)]
36pub struct ListAccountsOptions {
37    pub page: Option<i64>,
38    pub page_size: Option<i64>,
39    pub types: Option<Vec<AccountTypeValue>>,
40    pub subtypes: Option<Vec<AccountSubtypeValue>>,
41    pub is_archived: Option<bool>,
42}
43
44/// Options for listing products.
45#[derive(Debug, Clone, Default)]
46pub struct ListProductsOptions {
47    pub page: Option<i64>,
48    pub page_size: Option<i64>,
49    pub sort: Vec<ProductSort>,
50    pub is_sold: Option<bool>,
51    pub is_bought: Option<bool>,
52    pub is_archived: Option<bool>,
53}
54
55/// Options for listing vendors.
56#[derive(Debug, Clone, Default)]
57pub struct ListVendorsOptions {
58    pub page: Option<i64>,
59    pub page_size: Option<i64>,
60    pub email: Option<String>,
61}
62
63/// Options for listing sales taxes.
64#[derive(Debug, Clone, Default)]
65pub struct ListSalesTaxesOptions {
66    pub page: Option<i64>,
67    pub page_size: Option<i64>,
68    pub is_archived: Option<bool>,
69}