pontoconnect_rs 2.0.3

For more info, please refer to the documentation: https://documentation.ibanity.com/ponto-connect/
Documentation
/*
 * Ponto Connect
 *
 * For more info, please refer to the documentation: https://documentation.ibanity.com/ponto-connect/
 *
 * The version of the OpenAPI document: 2
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TransactionAttributes {
    /// Description of the transaction
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    /// Currency of the transaction, in <a href='https://en.wikipedia.org/wiki/ISO_4217'>ISO4217</a> format
    #[serde(rename = "currency", skip_serializing_if = "Option::is_none")]
    pub currency: Option<String>,
    /// A Base64-encoded SHA-256 digest of the transaction payload from the financial institution. This may NOT be unique if the exact same transaction happens on the same day, on the same account.
    #[serde(rename = "digest", skip_serializing_if = "Option::is_none")]
    pub digest: Option<String>,
    /// When this transaction was created. Formatted according to <a href='https://en.wikipedia.org/wiki/ISO_8601'>ISO8601</a> spec
    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
    pub created_at: Option<String>,
    /// When this transaction was last synchronized successfully. Formatted according to <a href='https://en.wikipedia.org/wiki/ISO_8601'>ISO8601</a> spec
    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
    pub updated_at: Option<String>,
    /// Amount of the transaction. Can be positive or negative
    #[serde(rename = "amount", skip_serializing_if = "Option::is_none")]
    pub amount: Option<f64>,
    /// A fee that was withheld from this transaction at the financial institution
    #[serde(rename = "fee", skip_serializing_if = "Option::is_none")]
    pub fee: Option<f64>,
    /// Additional transaction-related information provided from the financial institution to the customer
    #[serde(rename = "additionalInformation", skip_serializing_if = "Option::is_none")]
    pub additional_information: Option<String>,
    /// Bank transaction code, based on <a href='https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets'>ISO 20022</a>
    #[serde(rename = "bankTransactionCode", skip_serializing_if = "Option::is_none")]
    pub bank_transaction_code: Option<String>,
    /// Reference for card related to the transaction (if any). For example the last 4 digits of the card number.
    #[serde(rename = "cardReference", skip_serializing_if = "Option::is_none")]
    pub card_reference: Option<String>,
    /// Type of card reference (can be <code>PAN</code> or <code>MASKEDPAN</code>)
    #[serde(rename = "cardReferenceType", skip_serializing_if = "Option::is_none")]
    pub card_reference_type: Option<String>,
    /// Legal name of the counterpart
    #[serde(rename = "counterpartName", skip_serializing_if = "Option::is_none")]
    pub counterpart_name: Option<serde_json::Value>,
    /// Number representing the counterpart's account
    #[serde(rename = "counterpartReference", skip_serializing_if = "Option::is_none")]
    pub counterpart_reference: Option<String>,
    /// Identification of the creditor, e.g. a SEPA Creditor ID.
    #[serde(rename = "creditorId", skip_serializing_if = "Option::is_none")]
    pub creditor_id: Option<String>,
    /// Identifier assigned by the initiating party to identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Limited to 35 characters in the set <code>a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 / - ? : ( ) . , ' + Space</code> to ensure it is not rejected by the financial institution.
    #[serde(rename = "endToEndId", skip_serializing_if = "Option::is_none")]
    pub end_to_end_id: Option<String>,
    /// Date representing the moment when the financial institution recorded the {resource}.
    #[serde(rename = "executionDate", skip_serializing_if = "Option::is_none")]
    pub execution_date: Option<String>,
    /// Unique reference of the mandate which is signed between the remitter and the debtor
    #[serde(rename = "mandateId", skip_serializing_if = "Option::is_none")]
    pub mandate_id: Option<String>,
    /// Bank transaction code prorietary to the financial institution. Content will vary per financial institution
    #[serde(rename = "proprietaryBankTransactionCode", skip_serializing_if = "Option::is_none")]
    pub proprietary_bank_transaction_code: Option<String>,
    /// Purpose code, based on <a href='https://www.iso20022.org/'>ISO 20022</a>
    #[serde(rename = "purposeCode", skip_serializing_if = "Option::is_none")]
    pub purpose_code: Option<String>,
    /// Content of the remittance information (aka communication)
    #[serde(rename = "remittanceInformation", skip_serializing_if = "Option::is_none")]
    pub remittance_information: Option<String>,
    /// Type of remittance information, can be <code>structured</code> or <code>unstructured</code>
    #[serde(rename = "remittanceInformationType", skip_serializing_if = "Option::is_none")]
    pub remittance_information_type: Option<String>,
    /// Date representing the moment the transaction is considered effective
    #[serde(rename = "valueDate", skip_serializing_if = "Option::is_none")]
    pub value_date: Option<String>,
    /// Internal resource reference given by the financial institution
    #[serde(rename = "internalReference", skip_serializing_if = "Option::is_none")]
    pub internal_reference: Option<String>,
}

impl TransactionAttributes {
    pub fn new() -> TransactionAttributes {
        TransactionAttributes {
            description: None,
            currency: None,
            digest: None,
            created_at: None,
            updated_at: None,
            amount: None,
            fee: None,
            additional_information: None,
            bank_transaction_code: None,
            card_reference: None,
            card_reference_type: None,
            counterpart_name: None,
            counterpart_reference: None,
            creditor_id: None,
            end_to_end_id: None,
            execution_date: None,
            mandate_id: None,
            proprietary_bank_transaction_code: None,
            purpose_code: None,
            remittance_information: None,
            remittance_information_type: None,
            value_date: None,
            internal_reference: None,
        }
    }
}