firefly-iii 0.3.0

Rust API client for firefly-iii
Documentation
/*
 * 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 RecurrenceRepetitionStore {
    #[serde(rename = "type")]
    pub r#type: models::RecurrenceRepetitionType,
    /// Information that defined the type of repetition. - For 'daily', this is empty. - For 'weekly', it is day of the week between 1 and 7 (Monday - Sunday). - For 'ndom', it is '1,2' or '4,5' or something else, where the first number is the week in the month, and the second number is the day in the week (between 1 and 7). '2,3' means: the 2nd Wednesday of the month - For 'monthly' it is the day of the month (1 - 31) - For yearly, it is a full date, ie '2025-12-01'. The year you use does not matter.
    #[serde(rename = "moment")]
    pub moment: String,
    /// How many occurrences to skip. 0 means skip nothing. 1 means every other.
    #[serde(rename = "skip", skip_serializing_if = "Option::is_none")]
    pub skip: Option<i32>,
    /// How to respond when the recurring transaction falls in the weekend. Possible values: 1. Do nothing, just create it 2. Create no transaction. 3. Skip to the previous Friday. 4. Skip to the next Monday.
    #[serde(rename = "weekend", skip_serializing_if = "Option::is_none")]
    pub weekend: Option<i32>,
}

impl RecurrenceRepetitionStore {
    pub fn new(
        r#type: models::RecurrenceRepetitionType,
        moment: String,
    ) -> RecurrenceRepetitionStore {
        RecurrenceRepetitionStore {
            r#type,
            moment,
            skip: None,
            weekend: None,
        }
    }
}

impl fmt::Display for RecurrenceRepetitionStore {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match serde_json::to_string(self) {
            Ok(json) => write!(f, "{}", json),
            Err(_) => write!(f, "{{{{}}}}"),
        }
    }
}