1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use chrono::{DateTime, Utc};

use crate::snowflake::id_generator;

#[derive(Debug, Clone)]
pub struct OutBox {
	pub id: i64,
	pub aggregate_id: String,
	pub aggregate_name: String,
	pub topic: String,
	pub state: String,
	pub processed: bool,
	pub create_dt: DateTime<Utc>,
}

impl OutBox {
	pub fn new(aggregate_id: String, aggregate_name: String, topic: String, state: String) -> Self {
		Self {
			id: id_generator().generate(),
			aggregate_id,
			aggregate_name,
			topic,
			state,
			processed: false,
			create_dt: Default::default(),
		}
	}
}