44 lines
1.4 KiB
Rust
44 lines
1.4 KiB
Rust
//! 资产领域事件。
|
|
//!
|
|
//! 用于表达资产已确认、绑定已变更和资产历史投影待刷新等事实。
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
#[cfg(feature = "spacetime-types")]
|
|
use spacetimedb::SpacetimeType;
|
|
|
|
/// 资产领域事件。
|
|
///
|
|
/// 事件只描述已经发生的轻量事实,正式资产状态仍以 `asset_object`
|
|
/// 和 `asset_entity_binding` 为准。
|
|
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
|
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
|
pub enum AssetDomainEvent {
|
|
ObjectConfirmed(AssetObjectConfirmedEvent),
|
|
EntityBindingChanged(AssetEntityBindingChangedEvent),
|
|
}
|
|
|
|
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
|
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
|
pub struct AssetObjectConfirmedEvent {
|
|
pub asset_object_id: String,
|
|
pub asset_kind: String,
|
|
pub owner_user_id: Option<String>,
|
|
pub profile_id: Option<String>,
|
|
pub entity_id: Option<String>,
|
|
pub occurred_at_micros: i64,
|
|
}
|
|
|
|
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
|
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
|
pub struct AssetEntityBindingChangedEvent {
|
|
pub binding_id: String,
|
|
pub asset_object_id: String,
|
|
pub entity_kind: String,
|
|
pub entity_id: String,
|
|
pub slot: String,
|
|
pub asset_kind: String,
|
|
pub owner_user_id: Option<String>,
|
|
pub profile_id: Option<String>,
|
|
pub occurred_at_micros: i64,
|
|
}
|