use crate::core::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TransactionSummary {
#[serde(rename = "transactionId")]
pub transaction_id: String,
#[serde(rename = "fileExecutionId")]
pub file_execution_id: String,
#[serde(rename = "status")]
pub status: models::TransactionStatus,
#[serde(rename = "direction")]
pub direction: models::Direction,
#[serde(rename = "mode")]
pub mode: models::Mode,
#[serde(rename = "processedAt")]
pub processed_at: chrono::DateTime<chrono::FixedOffset>,
#[serde(rename = "artifacts")]
pub artifacts: Vec<models::Artifact>,
#[serde(rename = "partnership")]
pub partnership: Box<models::Partnership>,
#[serde(rename = "x12", skip_serializing_if = "Option::is_none")]
pub x12: Option<Box<models::X12TransactionSummary>>,
#[serde(rename = "fragments", skip_serializing_if = "Option::is_none")]
pub fragments: Option<Box<models::TransactionFragmentsSummary>>,
#[serde(rename = "translationErrors", skip_serializing_if = "Option::is_none")]
pub translation_errors: Option<Vec<models::TranslationError>>,
#[serde(rename = "businessIdentifiers", skip_serializing_if = "Option::is_none")]
pub business_identifiers: Option<Vec<models::BusinessIdentifier>>,
}
impl TransactionSummary {
pub fn new(transaction_id: String, file_execution_id: String, status: models::TransactionStatus, direction: models::Direction, mode: models::Mode, processed_at: chrono::DateTime<chrono::FixedOffset>, artifacts: Vec<models::Artifact>, partnership: models::Partnership) -> TransactionSummary {
TransactionSummary {
transaction_id,
file_execution_id,
status,
direction,
mode,
processed_at,
artifacts,
partnership: Box::new(partnership),
x12: None,
fragments: None,
translation_errors: None,
business_identifiers: None,
}
}
}