use crate::model::{shared, types};
use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Clients {
pub results: Vec<Client>,
pub has_more: bool,
}
#[derive(Debug, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Client {
pub id: types::UUID,
pub key: String,
pub name: String,
pub code: String,
pub currency: String,
pub notes: String,
pub emails: Vec<String>,
pub street_address: String,
pub invoice_details_source: InvoiceDetailsSource,
pub invoice_subject: String,
pub invoice_email_subject: String,
pub invoice_email_body: String,
pub use_workspace_invoice_details: bool,
pub invoice_notes: String,
pub is_internal: bool,
pub record_status_id: RecordStatus,
pub created_at: types::Timestamp,
pub practice: Option<shared::Entity>,
pub invoice_payment_term: shared::Entity,
pub owner: shared::Entity,
pub tags: Vec<shared::Entity>,
pub business_unit: Option<shared::Entity>,
}
#[derive(PartialEq, Deserialize, Serialize, Debug)]
#[serde(rename_all = "snake_case")]
pub enum InvoiceDetailsSource {
Workspace,
Custom,
BusinessUnit,
}
#[derive(PartialEq, Deserialize, Serialize, Debug)]
#[serde(rename_all = "snake_case")]
pub enum RecordStatus {
Active,
Archived,
}
#[cfg(test)]
mod tests;