Close DDD cleanup and tests-support closure
This commit is contained in:
@@ -1,3 +1,72 @@
|
||||
//! 任务领域错误过渡落位。
|
||||
//! 任务领域错误。
|
||||
//!
|
||||
//! 错误保持任务规则语义,例如状态不允许、目标不匹配或重复交付。
|
||||
//! 错误保持任务业务语义,例如字段缺失、步骤非法或任务尚未可交付。
|
||||
|
||||
use std::{error::Error, fmt};
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
pub enum QuestRecordFieldError {
|
||||
MissingQuestId,
|
||||
MissingRuntimeSessionId,
|
||||
MissingActorUserId,
|
||||
MissingIssuerNpcId,
|
||||
MissingIssuerNpcName,
|
||||
MissingTitle,
|
||||
MissingDescription,
|
||||
MissingRewardText,
|
||||
EmptySteps,
|
||||
MissingStepId,
|
||||
MissingStepTitle,
|
||||
MissingStepRevealText,
|
||||
MissingStepCompleteText,
|
||||
QuestNotReadyToTurnIn,
|
||||
MissingRewardItemId,
|
||||
MissingRewardItemCategory,
|
||||
MissingRewardItemName,
|
||||
InvalidRewardItemQuantity,
|
||||
MissingRewardItemStackKey,
|
||||
RewardEquipmentItemCannotStack,
|
||||
RewardNonStackableItemMustStaySingleQuantity,
|
||||
}
|
||||
|
||||
impl fmt::Display for QuestRecordFieldError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Self::MissingQuestId => f.write_str("quest_record.quest_id 不能为空"),
|
||||
Self::MissingRuntimeSessionId => {
|
||||
f.write_str("quest_record.runtime_session_id 不能为空")
|
||||
}
|
||||
Self::MissingActorUserId => f.write_str("quest_record.actor_user_id 不能为空"),
|
||||
Self::MissingIssuerNpcId => f.write_str("quest_record.issuer_npc_id 不能为空"),
|
||||
Self::MissingIssuerNpcName => f.write_str("quest_record.issuer_npc_name 不能为空"),
|
||||
Self::MissingTitle => f.write_str("quest_record.title 不能为空"),
|
||||
Self::MissingDescription => f.write_str("quest_record.description 不能为空"),
|
||||
Self::MissingRewardText => f.write_str("quest_record.reward_text 不能为空"),
|
||||
Self::EmptySteps => f.write_str("quest_record.steps 至少需要一条 step"),
|
||||
Self::MissingStepId => f.write_str("quest_step.step_id 不能为空"),
|
||||
Self::MissingStepTitle => f.write_str("quest_step.title 不能为空"),
|
||||
Self::MissingStepRevealText => f.write_str("quest_step.reveal_text 不能为空"),
|
||||
Self::MissingStepCompleteText => f.write_str("quest_step.complete_text 不能为空"),
|
||||
Self::QuestNotReadyToTurnIn => f.write_str("当前任务还没有进入可交付状态"),
|
||||
Self::MissingRewardItemId => f.write_str("quest_reward.items[].item_id 不能为空"),
|
||||
Self::MissingRewardItemCategory => {
|
||||
f.write_str("quest_reward.items[].category 不能为空")
|
||||
}
|
||||
Self::MissingRewardItemName => f.write_str("quest_reward.items[].name 不能为空"),
|
||||
Self::InvalidRewardItemQuantity => {
|
||||
f.write_str("quest_reward.items[].quantity 必须大于 0")
|
||||
}
|
||||
Self::MissingRewardItemStackKey => {
|
||||
f.write_str("quest_reward.items[].stack_key 不能为空")
|
||||
}
|
||||
Self::RewardEquipmentItemCannotStack => {
|
||||
f.write_str("quest_reward.items[] 可装备物品不能标记为 stackable")
|
||||
}
|
||||
Self::RewardNonStackableItemMustStaySingleQuantity => {
|
||||
f.write_str("quest_reward.items[] 不可堆叠物品必须固定为单槽位单数量")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Error for QuestRecordFieldError {}
|
||||
|
||||
Reference in New Issue
Block a user