From 479068587d5eb1efc2e9626044fbbb17be57cead Mon Sep 17 00:00:00 2001 From: Mahmoud-Emad Date: Tue, 7 Oct 2025 13:13:20 +0300 Subject: [PATCH] feat: Allow setting existing IDs for Planning and RegistrationDesk - Add `id` field to `PlanningArg` struct - Add `id` field to `RegistrationDeskArg` struct - Update `set` handler for Planning to use `PlanningArg` - Update `set` handler for RegistrationDesk to use `RegistrationDeskArg` - Enable setting existing IDs during `set` operations --- lib/hero/heromodels/planning.v | 7 ++++++- lib/hero/heromodels/registration_desk.v | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/hero/heromodels/planning.v b/lib/hero/heromodels/planning.v index 0d8b64a4..75ac40cc 100644 --- a/lib/hero/heromodels/planning.v +++ b/lib/hero/heromodels/planning.v @@ -184,6 +184,7 @@ fn (mut self DBPlanning) load(mut o Planning, mut e encoder.Decoder) ! { @[params] pub struct PlanningArg { pub mut: + id u32 name string description string color string @@ -297,7 +298,11 @@ pub fn planning_handle(mut f ModelsFactory, rpcid int, servercontext map[string] return new_response(rpcid, json.encode(res)) } 'set' { - mut o := db.decode_generic[Planning](params)! + mut args := db.decode_generic[PlanningArg](params)! + mut o := f.planning.new(args)! + if args.id != 0 { + o.id = args.id + } o = f.planning.set(o)! return new_response_int(rpcid, int(o.id)) } diff --git a/lib/hero/heromodels/registration_desk.v b/lib/hero/heromodels/registration_desk.v index 39c97dc9..fe6bcf1e 100644 --- a/lib/hero/heromodels/registration_desk.v +++ b/lib/hero/heromodels/registration_desk.v @@ -178,6 +178,7 @@ pub fn (mut self DBRegistrationDesk) load(mut o RegistrationDesk, mut e encoder. @[params] pub struct RegistrationDeskArg { pub mut: + id u32 name string description string fs_items []u32 // IDs of linked files or dirs @@ -303,7 +304,11 @@ pub fn registration_desk_handle(mut f ModelsFactory, rpcid int, servercontext ma return new_response(rpcid, json.encode(res)) } 'set' { - mut o := db.decode_generic[RegistrationDesk](params)! + mut args := db.decode_generic[RegistrationDeskArg](params)! + mut o := f.registration_desk.new(args)! + if args.id != 0 { + o.id = args.id + } o = f.registration_desk.set(o)! return new_response_int(rpcid, int(o.id)) }