diff --git a/src/command/cmd.rs b/src/command/cmd.rs index a67b606..c273b2c 100644 --- a/src/command/cmd.rs +++ b/src/command/cmd.rs @@ -1987,6 +1987,30 @@ effect_cmd!( } ); +effect_cmd!( + AddItemsCmd, + "add-items", + |args: &[String]| { + if args.len() < 2 { + Err("add-items requires a category and at least one item".to_string()) + } else { + Ok(()) + } + }, + |args: &Vec, _ctx: &CmdContext| -> Vec> { + let category = &args[0]; + args[1..] + .iter() + .map(|item| -> Box { + Box::new(effect::AddItem { + category: category.clone(), + item: item.clone(), + }) + }) + .collect() + } +); + effect_cmd!( AddItemInGroupCmd, "add-item-in-group", @@ -2257,6 +2281,7 @@ pub fn default_registry() -> CmdRegistry { // ── Model mutations (effect_cmd! wrappers) ─────────────────────────── r.register_pure(&AddCategoryCmd(vec![]), AddCategoryCmd::parse); r.register_pure(&AddItemCmd(vec![]), AddItemCmd::parse); + r.register_pure(&AddItemsCmd(vec![]), AddItemsCmd::parse); r.register_pure(&AddItemInGroupCmd(vec![]), AddItemInGroupCmd::parse); r.register_pure(&SetCellCmd(vec![]), SetCellCmd::parse); r.register(