39 lines
1.3 KiB
Rust
39 lines
1.3 KiB
Rust
// SPDX-FileCopyrightText: 2024 Aravinth Manivannan <realaravinth@batsense.net>
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
use cqrs_es::DomainEvent;
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
use super::{
|
|
category_added_event::*, customization_added_event::CustomizationAddedEvent,
|
|
product_added_event::ProductAddedEvent, product_updated_event::ProductUpdatedEvent,
|
|
store_added_event::StoreAddedEvent,
|
|
};
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq, Ord, PartialOrd)]
|
|
pub enum InventoryEvent {
|
|
CategoryAdded(CategoryAddedEvent),
|
|
StoreAdded(StoreAddedEvent),
|
|
ProductAdded(ProductAddedEvent),
|
|
CustomizationAdded(CustomizationAddedEvent),
|
|
ProductUpdated(ProductUpdatedEvent),
|
|
}
|
|
|
|
impl DomainEvent for InventoryEvent {
|
|
fn event_version(&self) -> String {
|
|
"1.0".to_string()
|
|
}
|
|
|
|
fn event_type(&self) -> String {
|
|
let e: &str = match self {
|
|
InventoryEvent::CategoryAdded { .. } => "InventoryCategoryAdded",
|
|
InventoryEvent::StoreAdded { .. } => "InventoryStoreAdded",
|
|
InventoryEvent::ProductAdded { .. } => "InventoryProductAdded",
|
|
InventoryEvent::CustomizationAdded { .. } => "InventoryCustomizationAdded",
|
|
InventoryEvent::ProductUpdated { .. } => "InventoryProductUpdated",
|
|
};
|
|
|
|
e.to_string()
|
|
}
|
|
}
|