use super::types::{IdsUri, Party};
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct IdsMessageHeader {
#[serde(rename = "@id")]
pub id: IdsUri,
#[serde(rename = "@type")]
pub message_type: String,
pub issued: DateTime<Utc>,
pub issuer_connector: IdsUri,
pub sender_agent: IdsUri,
pub recipient_connector: Option<Vec<IdsUri>>,
pub security_token: Option<String>,
pub correlation_message: Option<IdsUri>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RequestMessage {
pub header: IdsMessageHeader,
pub payload: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ResponseMessage {
pub header: IdsMessageHeader,
pub payload: Option<serde_json::Value>,
}