stormchaser_model/outbox.rs
1//! Outbox pattern models for reliable event publishing.
2
3use crate::id::*;
4use chrono::{DateTime, Utc};
5use serde::{Deserialize, Serialize};
6use serde_json::Value;
7
8/// Represents a message scheduled for reliable delivery via the outbox pattern.
9#[derive(Debug, Serialize, Deserialize, Clone, sqlx::FromRow)]
10pub struct OutboxMessage {
11 /// Unique identifier for the outbox message.
12 pub id: i64,
13 /// Associated workflow run ID.
14 pub run_id: RunId,
15 /// Event subject or topic.
16 pub subject: String,
17 /// JSON-encoded message payload.
18 pub payload: Value,
19 /// Timestamp when the message was created.
20 pub created_at: DateTime<Utc>,
21 /// Timestamp when the message was successfully processed, if applicable.
22 pub processed_at: Option<DateTime<Utc>>,
23}