
use crate::models::AccountingRecordTypeView; 
use crate::models::AmountView; 
use crate::models::DateTime; 
use crate::models::Guid; 

#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, Default)]
pub struct AccountingRecordView {
    
    #[serde(rename = "ActionPublicId", skip_serializing_if = "Option::is_none")]
    pub action_public_id: Option<String>,
    
    #[serde(rename = "Amount", skip_serializing_if = "Option::is_none")]
    pub amount: Option<AmountView>,
    
    #[serde(rename = "AmountIncVAT", skip_serializing_if = "Option::is_none")]
    pub amount_inc_vat: Option<AmountView>,
    
    #[serde(rename = "CostCenter", skip_serializing_if = "Option::is_none")]
    pub cost_center: Option<String>,
    
    #[serde(rename = "Created", skip_serializing_if = "Option::is_none")]
    pub created: Option<DateTime>,
    
    #[serde(rename = "InvoiceNumber", skip_serializing_if = "Option::is_none")]
    pub invoice_number: Option<String>,
    
    #[serde(rename = "OverrideAccount", skip_serializing_if = "Option::is_none")]
    pub override_account: Option<String>,
    
    #[serde(rename = "OverrideTradeDebtAccount", skip_serializing_if = "Option::is_none")]
    pub override_trade_debt_account: Option<String>,
    
    #[serde(rename = "PeriodEnd", skip_serializing_if = "Option::is_none")]
    pub period_end: Option<DateTime>,
    
    #[serde(rename = "PeriodStart", skip_serializing_if = "Option::is_none")]
    pub period_start: Option<DateTime>,
    
    #[serde(rename = "ProductPublicId", skip_serializing_if = "Option::is_none")]
    pub product_public_id: Option<Guid>,
    
    #[serde(rename = "Project", skip_serializing_if = "Option::is_none")]
    pub project: Option<String>,
    
    #[serde(rename = "ReferenceId", skip_serializing_if = "Option::is_none")]
    pub reference_id: Option<String>,
    
    #[serde(rename = "TransactionDate", skip_serializing_if = "Option::is_none")]
    pub transaction_date: Option<DateTime>,
    
    #[serde(rename = "Type", skip_serializing_if = "Option::is_none")]
    pub r#type: Option<AccountingRecordTypeView>,
    
    #[serde(rename = "VAT", skip_serializing_if = "Option::is_none")]
    pub vat: Option<f64>,
    
}