alien_core/app_events/
queue.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4
5#[cfg(feature = "openapi")]
6use utoipa::ToSchema;
7
8#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
10#[cfg_attr(feature = "openapi", derive(ToSchema))]
11#[serde(tag = "type", rename_all = "lowercase")]
12pub enum MessagePayload {
13 Json(serde_json::Value),
15 Text(String),
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
24#[cfg_attr(feature = "openapi", derive(ToSchema))]
25#[serde(rename_all = "camelCase")]
26pub struct QueueMessage {
27 pub id: String,
29
30 pub payload: MessagePayload,
32
33 pub receipt_handle: String,
35
36 pub timestamp: DateTime<Utc>,
38
39 pub source: String,
41
42 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
44 pub attributes: HashMap<String, String>,
45
46 #[serde(skip_serializing_if = "Option::is_none")]
48 pub attempt_count: Option<u32>,
49}