/*
* Firefly III API v6.4.14
*
* This is the documentation of the Firefly III API. Please report any bugs or issues. You may use the \"Authorize\" button to try the API below. <br><br> Please keep in mind that the demo site does **not** accept requests from `curl`, `colly`, `wget`, etc. You must use a browser or a tool like Insomnia to make your test requests. <br><br> To learn more about the idiosyncrasies of this API, please read about the API in the [Firefly III API documentation](https://docs.firefly-iii.org/references/firefly-iii/api/). <br><br> <small>This file was last generated on 2025-12-26 @ 15:17:41 (Europe/Amsterdam)</small>
*
* The version of the OpenAPI document: v6.4.14
* Contact: james@firefly-iii.org
* Generated by: https://openapi-generator.tech
*/
#![allow(unused_imports)]
use crate::models::{self, *};
use std::fmt;
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct BudgetProperties {
#[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
#[serde(rename = "active", skip_serializing_if = "Option::is_none")]
pub active: Option<bool>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "order", skip_serializing_if = "Option::is_none")]
pub order: Option<i32>,
#[serde(rename = "notes", skip_serializing_if = "Option::is_none")]
pub notes: Option<String>,
#[serde(rename = "auto_budget_type", skip_serializing_if = "Option::is_none")]
pub auto_budget_type: Option<models::AutoBudgetType>,
#[serde(rename = "auto_budget_period", skip_serializing_if = "Option::is_none")]
pub auto_budget_period: Option<models::AutoBudgetPeriod>,
/// The group ID of the group this object is part of. NULL if no group.
#[serde(rename = "object_group_id", skip_serializing_if = "Option::is_none")]
pub object_group_id: Option<String>,
/// The order of the group. At least 1, for the highest sorting.
#[serde(rename = "object_group_order", skip_serializing_if = "Option::is_none")]
pub object_group_order: Option<i32>,
/// The name of the group. NULL if no group.
#[serde(rename = "object_group_title", skip_serializing_if = "Option::is_none")]
pub object_group_title: Option<String>,
/// Indicates whether the object has a currency setting. If false, the object uses the administration's primary currency.
#[serde(
rename = "object_has_currency_setting",
skip_serializing_if = "Option::is_none"
)]
pub object_has_currency_setting: Option<bool>,
/// The currency ID of the currency associated with this object.
#[serde(rename = "currency_id", skip_serializing_if = "Option::is_none")]
pub currency_id: Option<String>,
/// The currency name of the currency associated with this object.
#[serde(rename = "currency_name", skip_serializing_if = "Option::is_none")]
pub currency_name: Option<String>,
/// The currency code of the currency associated with this object.
#[serde(rename = "currency_code", skip_serializing_if = "Option::is_none")]
pub currency_code: Option<String>,
#[serde(rename = "currency_symbol", skip_serializing_if = "Option::is_none")]
pub currency_symbol: Option<String>,
#[serde(
rename = "currency_decimal_places",
skip_serializing_if = "Option::is_none"
)]
pub currency_decimal_places: Option<i32>,
/// The currency ID of the administration's primary currency.
#[serde(
rename = "primary_currency_id",
skip_serializing_if = "Option::is_none"
)]
pub primary_currency_id: Option<String>,
/// The currency name of the administration's primary currency.
#[serde(
rename = "primary_currency_name",
skip_serializing_if = "Option::is_none"
)]
pub primary_currency_name: Option<String>,
/// The currency code of the administration's primary currency.
#[serde(
rename = "primary_currency_code",
skip_serializing_if = "Option::is_none"
)]
pub primary_currency_code: Option<String>,
/// The currency symbol of the administration's primary currency.
#[serde(
rename = "primary_currency_symbol",
skip_serializing_if = "Option::is_none"
)]
pub primary_currency_symbol: Option<String>,
/// The currency decimal places of the administration's primary currency.
#[serde(
rename = "primary_currency_decimal_places",
skip_serializing_if = "Option::is_none"
)]
pub primary_currency_decimal_places: Option<i32>,
/// The amount for the auto-budget, if set.
#[serde(rename = "auto_budget_amount", skip_serializing_if = "Option::is_none")]
pub auto_budget_amount: Option<String>,
/// The amount for the auto-budget, if set in the primary currency of the administration.
#[serde(
rename = "pc_auto_budget_amount",
skip_serializing_if = "Option::is_none"
)]
pub pc_auto_budget_amount: Option<String>,
/// Information on how much was spent in this budget. Is only filled in when the start and end date are submitted.
#[serde(rename = "spent", skip_serializing_if = "Option::is_none")]
pub spent: Option<Vec<models::ArrayEntryWithCurrencyAndSum>>,
/// Information on how much was spent in this budget. Is only filled in when the start and end date are submitted. It is converted to the primary currency of the administration.
#[serde(rename = "pc_spent", skip_serializing_if = "Option::is_none")]
pub pc_spent: Option<Vec<models::ArrayEntryWithCurrencyAndSum>>,
}
impl BudgetProperties {
pub fn new(name: String) -> BudgetProperties {
BudgetProperties {
created_at: None,
updated_at: None,
active: None,
name,
order: None,
notes: None,
auto_budget_type: None,
auto_budget_period: None,
object_group_id: None,
object_group_order: None,
object_group_title: None,
object_has_currency_setting: None,
currency_id: None,
currency_name: None,
currency_code: None,
currency_symbol: None,
currency_decimal_places: None,
primary_currency_id: None,
primary_currency_name: None,
primary_currency_code: None,
primary_currency_symbol: None,
primary_currency_decimal_places: None,
auto_budget_amount: None,
pc_auto_budget_amount: None,
spent: None,
pc_spent: None,
}
}
}
impl fmt::Display for BudgetProperties {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match serde_json::to_string(self) {
Ok(json) => write!(f, "{}", json),
Err(_) => write!(f, "{{{{}}}}"),
}
}
}