vanikam/src/inventory/domain/events.rs
Aravinth Manivannan 18141a4079
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
ci/woodpecker/pull_request_closed/woodpecker Pipeline was successful
feat: update product service, event and command
2024-07-16 17:15:03 +05:30

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()
}
}