diff --git a/migrator/accounts.go b/migrator/accounts.go
index 6121f4e68..9bcb46d19 100644
--- a/migrator/accounts.go
+++ b/migrator/accounts.go
@@ -74,7 +74,7 @@ func (b *v1Balance) IsDefault() bool {
}
func (v1Acc v1Account) AsAccount() (ac engine.Account) {
- // transfer data into new structurse
+ // transfer data into new structure
ac = engine.Account{
ID: v1Acc.Id,
BalanceMap: make(map[string]engine.Balances, len(v1Acc.BalanceMap)),
diff --git a/migrator/sharedgroup.go b/migrator/sharedgroup.go
new file mode 100644
index 000000000..e728e46db
--- /dev/null
+++ b/migrator/sharedgroup.go
@@ -0,0 +1,41 @@
+/*
+Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
+Copyright (C) ITsysCOM GmbH
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see
+*/
+package migrator
+
+import (
+ "github.com/cgrates/cgrates/engine"
+ "github.com/cgrates/cgrates/utils"
+)
+
+type v1SharedGroup struct {
+ Id string
+ AccountParameters map[string]*engine.SharingParameters
+ MemberIds []string
+}
+
+func (v1SG v1SharedGroup) AsSharedGroup() (sg engine.SharedGroup) {
+ sg = engine.SharedGroup{
+ Id: v1SG.Id,
+ AccountParameters: v1SG.AccountParameters,
+ MemberIds: make(utils.StringMap),
+ }
+ for _, accID := range v1SG.MemberIds {
+ sg.MemberIds[accID] = true
+ }
+ return
+}
diff --git a/migrator/sharedgroup_test.go b/migrator/sharedgroup_test.go
new file mode 100644
index 000000000..bc7085b16
--- /dev/null
+++ b/migrator/sharedgroup_test.go
@@ -0,0 +1,48 @@
+/*
+Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
+Copyright (C) ITsysCOM GmbH
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see
+*/
+package migrator
+
+import (
+ "reflect"
+ "testing"
+
+ "github.com/cgrates/cgrates/engine"
+ "github.com/cgrates/cgrates/utils"
+)
+
+func TestV1SharedGroupAsSharedGroup(t *testing.T) {
+ v1sg := &v1SharedGroup{
+ Id: "Test",
+ AccountParameters: map[string]*engine.SharingParameters{
+ "test": &engine.SharingParameters{Strategy: "*highest"},
+ },
+ MemberIds: []string{"1", "2", "3"},
+ }
+ sg := &engine.SharedGroup{
+ Id: "Test",
+ AccountParameters: map[string]*engine.SharingParameters{
+ "test": &engine.SharingParameters{Strategy: "*highest"},
+ },
+ MemberIds: utils.NewStringMap("1", "2", "3"),
+ }
+ newsg := v1sg.AsSharedGroup()
+ if !reflect.DeepEqual(*sg, newsg) {
+ t.Errorf("Expecting: %+v, received: %+v", *sg, newsg)
+ }
+
+}