Close DDD cleanup and tests-support closure
This commit is contained in:
@@ -1,3 +1,46 @@
|
||||
//! 成长领域事件过渡落位。
|
||||
//! 成长领域事件。
|
||||
//!
|
||||
//! 用于表达经验已授予、升级待处理和章节节奏变化等事实。
|
||||
//! 领域事件用于表达经验、升级和章节账本已经发生的事实;是否持久化为 SpacetimeDB
|
||||
//! event table 或向前端投影,由外层 adapter 决定。
|
||||
|
||||
use crate::domain::{PlayerProgressionGrantSource, RuntimeEntityLevelProfile};
|
||||
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 ProgressionDomainEvent {
|
||||
PlayerExperienceGranted(PlayerExperienceGrantedEvent),
|
||||
ChapterProgressionLedgerApplied(ChapterProgressionLedgerAppliedEvent),
|
||||
ChapterAutoLevelProfileResolved(ChapterAutoLevelProfileResolvedEvent),
|
||||
}
|
||||
|
||||
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
||||
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub struct PlayerExperienceGrantedEvent {
|
||||
pub user_id: String,
|
||||
pub amount: u32,
|
||||
pub source: PlayerProgressionGrantSource,
|
||||
pub level: u32,
|
||||
pub pending_level_ups: u32,
|
||||
pub occurred_at_micros: i64,
|
||||
}
|
||||
|
||||
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
||||
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub struct ChapterProgressionLedgerAppliedEvent {
|
||||
pub user_id: String,
|
||||
pub chapter_id: String,
|
||||
pub granted_quest_xp: u32,
|
||||
pub granted_hostile_xp: u32,
|
||||
pub hostile_defeat_increment: u32,
|
||||
pub occurred_at_micros: i64,
|
||||
}
|
||||
|
||||
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
||||
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub struct ChapterAutoLevelProfileResolvedEvent {
|
||||
pub profile: RuntimeEntityLevelProfile,
|
||||
pub occurred_at_micros: i64,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user