Close DDD cleanup and tests-support closure
This commit is contained in:
@@ -1,4 +1,71 @@
|
||||
//! 运行时物品领域模型过渡落位。
|
||||
//! 运行时物品领域模型。
|
||||
//!
|
||||
//! 后续迁移宝箱、奇遇和奖励物品规则时,只保留奖励生成与记录规则;
|
||||
//! 背包落库由外层事务 adapter 编排。
|
||||
//! 本文件承载宝箱、奇遇和奖励物品的稳定值对象;背包落库由外层事务 adapter 编排。
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
#[cfg(feature = "spacetime-types")]
|
||||
use spacetimedb::SpacetimeType;
|
||||
|
||||
pub const TREASURE_RECORD_ID_PREFIX: &str = "treasure_";
|
||||
|
||||
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub enum TreasureInteractionAction {
|
||||
Inspect,
|
||||
Leave,
|
||||
Secure,
|
||||
}
|
||||
|
||||
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
||||
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub struct RuntimeItemRewardItemSnapshot {
|
||||
pub item_id: String,
|
||||
pub category: String,
|
||||
pub item_name: String,
|
||||
pub description: Option<String>,
|
||||
pub quantity: u32,
|
||||
pub rarity: RuntimeItemRewardItemRarity,
|
||||
pub tags: Vec<String>,
|
||||
pub stackable: bool,
|
||||
pub stack_key: String,
|
||||
pub equipment_slot_id: Option<RuntimeItemEquipmentSlot>,
|
||||
}
|
||||
|
||||
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub enum RuntimeItemRewardItemRarity {
|
||||
Common,
|
||||
Uncommon,
|
||||
Rare,
|
||||
Epic,
|
||||
Legendary,
|
||||
}
|
||||
|
||||
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub enum RuntimeItemEquipmentSlot {
|
||||
Weapon,
|
||||
Armor,
|
||||
Relic,
|
||||
}
|
||||
|
||||
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
||||
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub struct TreasureRecordSnapshot {
|
||||
pub treasure_record_id: String,
|
||||
pub runtime_session_id: String,
|
||||
pub story_session_id: String,
|
||||
pub actor_user_id: String,
|
||||
pub encounter_id: String,
|
||||
pub encounter_name: String,
|
||||
pub scene_id: Option<String>,
|
||||
pub scene_name: Option<String>,
|
||||
pub action: TreasureInteractionAction,
|
||||
pub reward_items: Vec<RuntimeItemRewardItemSnapshot>,
|
||||
pub reward_hp: u32,
|
||||
pub reward_mana: u32,
|
||||
pub reward_currency: u32,
|
||||
pub story_hint: Option<String>,
|
||||
pub created_at_micros: i64,
|
||||
pub updated_at_micros: i64,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user