Files
Genarrative/server-rs/crates/module-runtime-item/src/events.rs

33 lines
1.2 KiB
Rust

//! 运行时物品领域事件。
//!
//! 用于表达宝箱已结算、奖励物品已生成和资源奖励待入账等事实。
use crate::domain::RuntimeItemRewardItemSnapshot;
use serde::{Deserialize, Serialize};
#[cfg(feature = "spacetime-types")]
use spacetimedb::SpacetimeType;
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum RuntimeItemDomainEvent {
TreasureResolved(RuntimeItemTreasureResolvedEvent),
TreasureRewardItemsGenerated(RuntimeItemTreasureRewardItemsGeneratedEvent),
}
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct RuntimeItemTreasureResolvedEvent {
pub treasure_record_id: String,
pub runtime_session_id: String,
pub story_session_id: String,
pub occurred_at_micros: i64,
}
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct RuntimeItemTreasureRewardItemsGeneratedEvent {
pub treasure_record_id: String,
pub reward_items: Vec<RuntimeItemRewardItemSnapshot>,
pub occurred_at_micros: i64,
}