use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum InvoiceStatus {
Draft,
Saved,
Sent,
Viewed,
Overdue,
Partial,
Paid,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum InvoiceCreateStatus {
Draft,
Saved,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum InvoiceSendMethod {
NotSent,
WaveSend,
ManualMarkSent,
Skipped,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum InvoiceDiscountType {
Fixed,
Percentage,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum InvoiceSort {
CreatedAtAsc,
CreatedAtDesc,
ModifiedAtAsc,
ModifiedAtDesc,
InvoiceDateAsc,
InvoiceDateDesc,
InvoiceNumberAsc,
InvoiceNumberDesc,
DueDateAsc,
DueDateDesc,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum CustomerSort {
CreatedAtAsc,
CreatedAtDesc,
ModifiedAtAsc,
ModifiedAtDesc,
NameAsc,
NameDesc,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum ProductSort {
CreatedAtAsc,
CreatedAtDesc,
ModifiedAtAsc,
ModifiedAtDesc,
NameAsc,
NameDesc,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum AccountTypeValue {
Asset,
Equity,
Expense,
Income,
Liability,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum AccountNormalBalanceType {
Credit,
Debit,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum AccountSubtypeValue {
CashAndBank,
CostOfGoodsSold,
CreditCard,
CustomerPrepaymentsAndCredits,
DepreciationAndAmortization,
Discounts,
DueForPayroll,
DueToYouAndOtherOwners,
Expense,
GainOnForeignExchange,
Income,
Inventory,
Loans,
LossOnForeignExchange,
MoneyInTransit,
NonRetainedEarnings,
OtherCurrentAssets,
OtherCurrentLiability,
OtherIncome,
OtherLongTermAssets,
OtherLongTermLiability,
Payable,
PayableBills,
PayableOther,
PaymentProcessingFees,
PayrollExpenses,
PropertyPlantEquipment,
Receivable,
ReceivableInvoices,
ReceivableOther,
RetainedEarnings,
SalesTax,
SystemCustomerCredits,
Transfers,
UncategorizedExpense,
UncategorizedIncome,
UnknownAccount,
VendorPrepaymentsAndCredits,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum TransactionDirection {
Deposit,
Withdrawal,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum BalanceType {
Credit,
Debit,
Decrease,
Increase,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum TransactionOrigin {
Api,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum OrganizationalType {
SoleProprietor,
Partnership,
Corporation,
NonProfit,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum CurrencyCode {
USD,
CAD,
EUR,
GBP,
AUD,
NZD,
JPY,
CNY,
INR,
BRL,
MXN,
CHF,
SEK,
NOK,
DKK,
ZAR,
HKD,
SGD,
KRW,
TWD,
THB,
PHP,
IDR,
MYR,
VND,
AED,
SAR,
ILS,
TRY,
PLN,
CZK,
HUF,
RON,
BGN,
HRK,
RUB,
UAH,
EGP,
NGN,
KES,
GHS,
COP,
PEN,
ARS,
CLP,
PKR,
BDT,
LKR,
MMK,
NPR,
#[serde(untagged)]
Other(String),
}
impl std::fmt::Display for CurrencyCode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
CurrencyCode::Other(s) => write!(f, "{s}"),
other => write!(f, "{other:?}"),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum CountryCode {
US,
CA,
GB,
AU,
NZ,
IE,
DE,
FR,
ES,
IT,
NL,
BE,
AT,
CH,
SE,
NO,
DK,
FI,
PT,
JP,
CN,
IN,
BR,
MX,
ZA,
SG,
HK,
KR,
TW,
PH,
MY,
ID,
TH,
VN,
AE,
SA,
IL,
TR,
PL,
CZ,
HU,
RO,
BG,
HR,
RU,
UA,
EG,
NG,
KE,
GH,
CO,
PE,
AR,
CL,
PK,
BD,
LK,
NP,
#[serde(untagged)]
Other(String),
}
impl std::fmt::Display for CountryCode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
CountryCode::Other(s) => write!(f, "{s}"),
other => write!(f, "{other:?}"),
}
}
}