use serde::{Deserialize, Serialize};
use chrono::{DateTime, Utc};
use super::types::*;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestCreatedEvent {
pub id: DigestDigestId,
pub data: DigestDigestDto,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestUpdatedEvent {
pub id: DigestDigestId,
pub data: DigestDigestDto,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestDeletedEvent {
pub id: DigestDigestId,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestSubscriptionCreatedEvent {
pub id: DigestSubscriptionId,
pub data: DigestSubscriptionDto,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestSubscriptionUpdatedEvent {
pub id: DigestSubscriptionId,
pub data: DigestSubscriptionDto,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestSubscriptionDeletedEvent {
pub id: DigestSubscriptionId,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestKpiCreatedEvent {
pub id: DigestDigestKpiId,
pub data: DigestDigestKpiDto,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestKpiUpdatedEvent {
pub id: DigestDigestKpiId,
pub data: DigestDigestKpiDto,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestKpiDeletedEvent {
pub id: DigestDigestKpiId,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipCreatedEvent {
pub id: DigestTipId,
pub data: DigestTipDto,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipUpdatedEvent {
pub id: DigestTipId,
pub data: DigestTipDto,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipDeletedEvent {
pub id: DigestTipId,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipUserCreatedEvent {
pub id: DigestTipUserId,
pub data: DigestTipUserDto,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipUserUpdatedEvent {
pub id: DigestTipUserId,
pub data: DigestTipUserDto,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipUserDeletedEvent {
pub id: DigestTipUserId,
pub occurred_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum DigestEvent {
DigestDigestCreated(DigestDigestCreatedEvent),
DigestDigestUpdated(DigestDigestUpdatedEvent),
DigestDigestDeleted(DigestDigestDeletedEvent),
DigestSubscriptionCreated(DigestSubscriptionCreatedEvent),
DigestSubscriptionUpdated(DigestSubscriptionUpdatedEvent),
DigestSubscriptionDeleted(DigestSubscriptionDeletedEvent),
DigestDigestKpiCreated(DigestDigestKpiCreatedEvent),
DigestDigestKpiUpdated(DigestDigestKpiUpdatedEvent),
DigestDigestKpiDeleted(DigestDigestKpiDeletedEvent),
DigestTipCreated(DigestTipCreatedEvent),
DigestTipUpdated(DigestTipUpdatedEvent),
DigestTipDeleted(DigestTipDeletedEvent),
DigestTipUserCreated(DigestTipUserCreatedEvent),
DigestTipUserUpdated(DigestTipUserUpdatedEvent),
DigestTipUserDeleted(DigestTipUserDeletedEvent),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestEventMetadata {
pub module: &'static str,
pub version: &'static str,
}
impl Default for DigestEventMetadata {
fn default() -> Self {
Self {
module: "digest",
version: "1.0",
}
}
}