From 75cf4a75ccbac3cd7487bff1acc84319b670380b Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Fri, 22 Dec 2023 13:49:14 -0500 Subject: [PATCH] Update EC.FieldAsInterface to use Charging for referencing rating/accounting ChargingID is expected to have either *rating or *accounting prefix. --- utils/consts.go | 2 + utils/eventcharges.go | 22 +- utils/eventcharges_test.go | 542 ++++++++++++++++++------------------- 3 files changed, 289 insertions(+), 277 deletions(-) diff --git a/utils/consts.go b/utils/consts.go index 310523e16..bf52e5571 100644 --- a/utils/consts.go +++ b/utils/consts.go @@ -285,6 +285,7 @@ const ( ConfigPath = "/etc/cgrates/" DisconnectCause = "DisconnectCause" MetaRating = "*rating" + MetaAccounting = "*accounting" NotAvailable = "N/A" Call = "call" ExtraFields = "ExtraFields" @@ -509,6 +510,7 @@ const ( AccountSummary = "AccountSummary" RatingFilters = "RatingFilters" RatingFilter = "RatingFilter" + Charging = "Charging" Accounting = "Accounting" Rating = "Rating" Charges = "Charges" diff --git a/utils/eventcharges.go b/utils/eventcharges.go index 838cc1d78..c876f2c6a 100644 --- a/utils/eventcharges.go +++ b/utils/eventcharges.go @@ -21,6 +21,7 @@ package utils import ( "fmt" "slices" + "strings" ) // NewEventChargers instantiates the EventChargers in a central place @@ -566,13 +567,22 @@ func (ec *EventCharges) getChargesForPath(fldPath []string, chr *ChargeEntry) (v if len(fldPath) == 0 { return chr, nil } - switch fldPath[0] { - case Rating: - return ec.getRatingForPath(fldPath[1:], ec.Rating[chr.ChargingID]) - case Accounting: - return ec.getAccountingForPath(fldPath[1:], ec.Accounting[chr.ChargingID]) + if fldPath[0] != Charging { + return chr.FieldAsInterface(fldPath) } - return chr.FieldAsInterface(fldPath) + chargingType, chargingID, sepFound := strings.Cut(chr.ChargingID, InInFieldSep) + if !sepFound { + return nil, fmt.Errorf("expected ChargingID format '*accounting:*' or '*rating:*', got '%s'", chr.ChargingID) + } + + // Handle different charging types. + switch chargingType { + case MetaRating: + return ec.getRatingForPath(fldPath[1:], ec.Rating[chargingID]) + case MetaAccounting: + return ec.getAccountingForPath(fldPath[1:], ec.Accounting[chargingID]) + } + return nil, fmt.Errorf("unsupported field prefix: <%s>", fldPath[0]) } func (ec *EventCharges) getAccountingForPath(fldPath []string, accCharge *AccountCharge) (val any, err error) { diff --git a/utils/eventcharges_test.go b/utils/eventcharges_test.go index ea7fea34d..54618497d 100644 --- a/utils/eventcharges_test.go +++ b/utils/eventcharges_test.go @@ -2039,11 +2039,11 @@ func TestEventChargesFieldAsInterface(t *testing.T) { Abstracts: &Decimal{decimal.New(145, 1)}, Charges: []*ChargeEntry{ { - ChargingID: "accounting1", + ChargingID: "*accounting:accounting1", CompressFactor: 1, }, { - ChargingID: "rating1", + ChargingID: "*rating:rating1", CompressFactor: 2, }, }, @@ -2320,17 +2320,17 @@ func TestEventChargesFieldAsInterface(t *testing.T) { { name: "Charges", fields: []string{"Charges"}, - exp: `[{"ChargingID":"accounting1","CompressFactor":1},{"ChargingID":"rating1","CompressFactor":2}]`, + exp: `[{"ChargingID":"*accounting:accounting1","CompressFactor":1},{"ChargingID":"*rating:rating1","CompressFactor":2}]`, }, { name: "Charges[1]", fields: []string{"Charges[1]"}, - exp: `{"ChargingID":"rating1","CompressFactor":2}`, + exp: `{"ChargingID":"*rating:rating1","CompressFactor":2}`, }, { name: "Charges[1].ChargingID", fields: []string{"Charges[1]", "ChargingID"}, - exp: "rating1", + exp: "*rating:rating1", }, { name: "Charges[1].CompressFactor", @@ -2338,668 +2338,668 @@ func TestEventChargesFieldAsInterface(t *testing.T) { exp: "2", }, { - name: "Charges[0].Accounting", - fields: []string{"Charges[0]", "Accounting"}, + name: "Charges[0].Charging", + fields: []string{"Charges[0]", "Charging"}, exp: `{"AccountID":"acc1","BalanceID":"balance1","Units":10,"BalanceLimit":0,"UnitFactorID":"unit_factor1","AttributeIDs":["attr1","attr2"],"RatingID":"rating2","JoinedChargeIDs":["joined_charge"]}`, }, { - name: "Charges[0].Accounting.AccountID", - fields: []string{"Charges[0]", "Accounting", "AccountID"}, + name: "Charges[0].Charging.AccountID", + fields: []string{"Charges[0]", "Charging", "AccountID"}, exp: "acc1", }, { - name: "Charges[0].Accounting.BalanceID", - fields: []string{"Charges[0]", "Accounting", "BalanceID"}, + name: "Charges[0].Charging.BalanceID", + fields: []string{"Charges[0]", "Charging", "BalanceID"}, exp: "balance1", }, { - name: "Charges[0].Accounting.Units", - fields: []string{"Charges[0]", "Accounting", "Units"}, + name: "Charges[0].Charging.Units", + fields: []string{"Charges[0]", "Charging", "Units"}, exp: "10", }, { - name: "Charges[0].Accounting.BalanceLimit", - fields: []string{"Charges[0]", "Accounting", "BalanceLimit"}, + name: "Charges[0].Charging.BalanceLimit", + fields: []string{"Charges[0]", "Charging", "BalanceLimit"}, exp: "0", }, { - name: "Charges[0].Accounting.UnitFactorID", - fields: []string{"Charges[0]", "Accounting", "UnitFactorID"}, + name: "Charges[0].Charging.UnitFactorID", + fields: []string{"Charges[0]", "Charging", "UnitFactorID"}, exp: "unit_factor1", }, { - name: "Charges[0].Accounting.AttributeIDs", - fields: []string{"Charges[0]", "Accounting", "AttributeIDs"}, + name: "Charges[0].Charging.AttributeIDs", + fields: []string{"Charges[0]", "Charging", "AttributeIDs"}, exp: `["attr1","attr2"]`, }, { - name: "Charges[0].Accounting.AttributeIDs[1]", - fields: []string{"Charges[0]", "Accounting", "AttributeIDs[1]"}, + name: "Charges[0].Charging.AttributeIDs[1]", + fields: []string{"Charges[0]", "Charging", "AttributeIDs[1]"}, exp: "attr2", }, { - name: "Charges[0].Accounting.RatingID", - fields: []string{"Charges[0]", "Accounting", "RatingID"}, + name: "Charges[0].Charging.RatingID", + fields: []string{"Charges[0]", "Charging", "RatingID"}, exp: "rating2", }, { - name: "Charges[0].Accounting.JoinedChargeIDs", - fields: []string{"Charges[0]", "Accounting", "JoinedChargeIDs"}, + name: "Charges[0].Charging.JoinedChargeIDs", + fields: []string{"Charges[0]", "Charging", "JoinedChargeIDs"}, exp: `["joined_charge"]`, }, { - name: "Charges[0].Accounting.JoinedChargeIDs[0]", - fields: []string{"Charges[0]", "Accounting", "JoinedChargeIDs[0]"}, + name: "Charges[0].Charging.JoinedChargeIDs[0]", + fields: []string{"Charges[0]", "Charging", "JoinedChargeIDs[0]"}, exp: "joined_charge", }, { - name: "Charges[0].Accounting.Account", - fields: []string{"Charges[0]", "Accounting", "Account"}, + name: "Charges[0].Charging.Account", + fields: []string{"Charges[0]", "Charging", "Account"}, exp: `{"Tenant":"cgrates.org","ID":"acc1","FilterIDs":["fltr1"],"Weights":[{"FilterIDs":["fltr2"],"Weight":10}],"Blockers":[{"FilterIDs":["fltr3"],"Blocker":true}],"Opts":{"opt1":"value1"},"Balances":{"balance1":{"ID":"balance1","FilterIDs":["fltr4"],"Weights":[{"FilterIDs":["fltr3"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr3"],"Blocker":true}],"Type":"*monetary","Units":1,"UnitFactors":[{"FilterIDs":["fltr1","fltr2"],"Factor":2}],"Opts":{"opt1":"value1"},"CostIncrements":[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}],"AttributeIDs":["attr1"],"RateProfileIDs":["rate_prf1"]},"balance2":{"ID":"balance2","FilterIDs":["fltr3"],"Weights":[{"FilterIDs":["fltr5"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr5"],"Blocker":true}],"Type":"*voice","Units":5,"UnitFactors":[{"FilterIDs":["fltr3","fltr4"],"Factor":1}],"Opts":{"opts1":"value1"},"CostIncrements":[{"FilterIDs":["fltr2"],"Increment":1,"FixedFee":2,"RecurrentFee":3}],"AttributeIDs":["attr2"],"RateProfileIDs":["rate_prf2"]}},"ThresholdIDs":null}`, }, { - name: "Charges[0].Accounting.Account.Tenant", - fields: []string{"Charges[0]", "Accounting", "Account", "Tenant"}, + name: "Charges[0].Charging.Account.Tenant", + fields: []string{"Charges[0]", "Charging", "Account", "Tenant"}, exp: "cgrates.org", }, { - name: "Charges[0].Accounting.Account.FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Account", "FilterIDs"}, + name: "Charges[0].Charging.Account.FilterIDs", + fields: []string{"Charges[0]", "Charging", "Account", "FilterIDs"}, exp: `["fltr1"]`, }, { - name: "Charges[0].Accounting.Account.FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "FilterIDs[0]"}, + name: "Charges[0].Charging.Account.FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "Account", "FilterIDs[0]"}, exp: "fltr1", }, { - name: "Charges[0].Accounting.Account.ID", - fields: []string{"Charges[0]", "Accounting", "Account", "ID"}, + name: "Charges[0].Charging.Account.ID", + fields: []string{"Charges[0]", "Charging", "Account", "ID"}, exp: "acc1", }, { - name: "Charges[0].Accounting.Account.Weights", - fields: []string{"Charges[0]", "Accounting", "Account", "Weights"}, + name: "Charges[0].Charging.Account.Weights", + fields: []string{"Charges[0]", "Charging", "Account", "Weights"}, exp: "fltr2;10", }, { - name: "Charges[0].Accounting.Account.Weights[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Weights[0]"}, + name: "Charges[0].Charging.Account.Weights[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Weights[0]"}, exp: `{"FilterIDs":["fltr2"],"Weight":10}`, }, { - name: "Charges[0].Accounting.Account.Weights[0].FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Account", "Weights[0]", "FilterIDs"}, + name: "Charges[0].Charging.Account.Weights[0].FilterIDs", + fields: []string{"Charges[0]", "Charging", "Account", "Weights[0]", "FilterIDs"}, exp: `["fltr2"]`, }, { - name: "Charges[0].Accounting.Account.Weights[0].FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Weights[0]", "FilterIDs[0]"}, + name: "Charges[0].Charging.Account.Weights[0].FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Weights[0]", "FilterIDs[0]"}, exp: "fltr2", }, { - name: "Charges[0].Accounting.Account.Weights[0].Weight", - fields: []string{"Charges[0]", "Accounting", "Account", "Weights[0]", "Weight"}, + name: "Charges[0].Charging.Account.Weights[0].Weight", + fields: []string{"Charges[0]", "Charging", "Account", "Weights[0]", "Weight"}, exp: "10", }, { - name: "Charges[0].Accounting.Account.Blockers", - fields: []string{"Charges[0]", "Accounting", "Account", "Blockers"}, + name: "Charges[0].Charging.Account.Blockers", + fields: []string{"Charges[0]", "Charging", "Account", "Blockers"}, exp: "fltr3;true", }, { - name: "Charges[0].Accounting.Account.Blockers[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Blockers[0]"}, + name: "Charges[0].Charging.Account.Blockers[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Blockers[0]"}, exp: `{"FilterIDs":["fltr3"],"Blocker":true}`, }, { - name: "Charges[0].Accounting.Account.Blockers[0].FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Account", "Blockers[0]", "FilterIDs"}, + name: "Charges[0].Charging.Account.Blockers[0].FilterIDs", + fields: []string{"Charges[0]", "Charging", "Account", "Blockers[0]", "FilterIDs"}, exp: `["fltr3"]`, }, { - name: "Charges[0].Accounting.Account.Blockers[0].FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Blockers[0]", "FilterIDs[0]"}, + name: "Charges[0].Charging.Account.Blockers[0].FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Blockers[0]", "FilterIDs[0]"}, exp: "fltr3", }, { - name: "Charges[0].Accounting.Account.Blockers[0].Blocker", - fields: []string{"Charges[0]", "Accounting", "Account", "Blockers[0]", "Blocker"}, + name: "Charges[0].Charging.Account.Blockers[0].Blocker", + fields: []string{"Charges[0]", "Charging", "Account", "Blockers[0]", "Blocker"}, exp: "true", }, { - name: "Charges[0].Accounting.Account.Opts", - fields: []string{"Charges[0]", "Accounting", "Account", "Opts"}, + name: "Charges[0].Charging.Account.Opts", + fields: []string{"Charges[0]", "Charging", "Account", "Opts"}, exp: `{"opt1":"value1"}`, }, { - name: "Charges[0].Accounting.Account.Opts.opt1", - fields: []string{"Charges[0]", "Accounting", "Account", "Opts", "opt1"}, + name: "Charges[0].Charging.Account.Opts.opt1", + fields: []string{"Charges[0]", "Charging", "Account", "Opts", "opt1"}, exp: "value1", }, { - name: "Charges[0].Accounting.Account.Balances", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances"}, + name: "Charges[0].Charging.Account.Balances", + fields: []string{"Charges[0]", "Charging", "Account", "Balances"}, exp: `{"balance1":{"ID":"balance1","FilterIDs":["fltr4"],"Weights":[{"FilterIDs":["fltr3"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr3"],"Blocker":true}],"Type":"*monetary","Units":1,"UnitFactors":[{"FilterIDs":["fltr1","fltr2"],"Factor":2}],"Opts":{"opt1":"value1"},"CostIncrements":[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}],"AttributeIDs":["attr1"],"RateProfileIDs":["rate_prf1"]},"balance2":{"ID":"balance2","FilterIDs":["fltr3"],"Weights":[{"FilterIDs":["fltr5"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr5"],"Blocker":true}],"Type":"*voice","Units":5,"UnitFactors":[{"FilterIDs":["fltr3","fltr4"],"Factor":1}],"Opts":{"opts1":"value1"},"CostIncrements":[{"FilterIDs":["fltr2"],"Increment":1,"FixedFee":2,"RecurrentFee":3}],"AttributeIDs":["attr2"],"RateProfileIDs":["rate_prf2"]}}`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1"}, + name: "Charges[0].Charging.Account.Balances.balance1", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1"}, exp: `{"ID":"balance1","FilterIDs":["fltr4"],"Weights":[{"FilterIDs":["fltr3"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr3"],"Blocker":true}],"Type":"*monetary","Units":1,"UnitFactors":[{"FilterIDs":["fltr1","fltr2"],"Factor":2}],"Opts":{"opt1":"value1"},"CostIncrements":[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}],"AttributeIDs":["attr1"],"RateProfileIDs":["rate_prf1"]}`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.ID", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "ID"}, + name: "Charges[0].Charging.Account.Balances.balance1.ID", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "ID"}, exp: "balance1", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "FilterIDs"}, + name: "Charges[0].Charging.Account.Balances.balance1.FilterIDs", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "FilterIDs"}, exp: `["fltr4"]`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "FilterIDs[0]"}, + name: "Charges[0].Charging.Account.Balances.balance1.FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "FilterIDs[0]"}, exp: "fltr4", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Weights", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Weights"}, + name: "Charges[0].Charging.Account.Balances.balance1.Weights", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Weights"}, exp: "fltr3;20", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Weights[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Weights[0]"}, + name: "Charges[0].Charging.Account.Balances.balance1.Weights[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Weights[0]"}, exp: `{"FilterIDs":["fltr3"],"Weight":20}`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Weights[0].FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Weights[0]", "FilterIDs"}, + name: "Charges[0].Charging.Account.Balances.balance1.Weights[0].FilterIDs", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Weights[0]", "FilterIDs"}, exp: `["fltr3"]`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Weights[0].FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Weights[0]", "FilterIDs[0]"}, + name: "Charges[0].Charging.Account.Balances.balance1.Weights[0].FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Weights[0]", "FilterIDs[0]"}, exp: "fltr3", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Weights[0].Weight", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Weights[0]", "Weight"}, + name: "Charges[0].Charging.Account.Balances.balance1.Weights[0].Weight", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Weights[0]", "Weight"}, exp: "20", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Blockers", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Blockers"}, + name: "Charges[0].Charging.Account.Balances.balance1.Blockers", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Blockers"}, exp: "fltr3;true", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Blockers[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Blockers[0]"}, + name: "Charges[0].Charging.Account.Balances.balance1.Blockers[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Blockers[0]"}, exp: `{"FilterIDs":["fltr3"],"Blocker":true}`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Blockers[0].FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Blockers[0]", "FilterIDs"}, + name: "Charges[0].Charging.Account.Balances.balance1.Blockers[0].FilterIDs", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Blockers[0]", "FilterIDs"}, exp: `["fltr3"]`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Blockers[0].FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Blockers[0]", "FilterIDs[0]"}, + name: "Charges[0].Charging.Account.Balances.balance1.Blockers[0].FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Blockers[0]", "FilterIDs[0]"}, exp: "fltr3", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Blockers[0].Blocker", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Blockers[0]", "Blocker"}, + name: "Charges[0].Charging.Account.Balances.balance1.Blockers[0].Blocker", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Blockers[0]", "Blocker"}, exp: "true", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Type", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Type"}, + name: "Charges[0].Charging.Account.Balances.balance1.Type", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Type"}, exp: MetaMonetary, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Units", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Units"}, + name: "Charges[0].Charging.Account.Balances.balance1.Units", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Units"}, exp: "1", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.UnitFactors", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "UnitFactors"}, + name: "Charges[0].Charging.Account.Balances.balance1.UnitFactors", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "UnitFactors"}, exp: `[{"FilterIDs":["fltr1","fltr2"],"Factor":2}]`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.UnitFactors[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "UnitFactors[0]"}, + name: "Charges[0].Charging.Account.Balances.balance1.UnitFactors[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "UnitFactors[0]"}, exp: `{"FilterIDs":["fltr1","fltr2"],"Factor":2}`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.UnitFactors[0].FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "UnitFactors[0]", "FilterIDs"}, + name: "Charges[0].Charging.Account.Balances.balance1.UnitFactors[0].FilterIDs", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "UnitFactors[0]", "FilterIDs"}, exp: `["fltr1","fltr2"]`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.UnitFactors[0].FilterIDs[1]", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "UnitFactors[0]", "FilterIDs[1]"}, + name: "Charges[0].Charging.Account.Balances.balance1.UnitFactors[0].FilterIDs[1]", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "UnitFactors[0]", "FilterIDs[1]"}, exp: "fltr2", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.UnitFactors[0].Factor", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "UnitFactors[0]", "Factor"}, + name: "Charges[0].Charging.Account.Balances.balance1.UnitFactors[0].Factor", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "UnitFactors[0]", "Factor"}, exp: "2", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Opts", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Opts"}, + name: "Charges[0].Charging.Account.Balances.balance1.Opts", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Opts"}, exp: `{"opt1":"value1"}`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.Opts.opt1", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Opts", "opt1"}, + name: "Charges[0].Charging.Account.Balances.balance1.Opts.opt1", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Opts", "opt1"}, exp: "value1", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements"}, + name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements"}, exp: `[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}]`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]"}, + name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]"}, exp: `{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0].FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]", "FilterIDs"}, + name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0].FilterIDs", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]", "FilterIDs"}, exp: `["fltr3"]`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0].FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]", "FilterIDs[0]"}, + name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0].FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]", "FilterIDs[0]"}, exp: "fltr3", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0].Increment", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]", "Increment"}, + name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0].Increment", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]", "Increment"}, exp: "3", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0].FixedFee", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]", "FixedFee"}, + name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0].FixedFee", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]", "FixedFee"}, exp: "1", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0].RecurrentFee", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]", "RecurrentFee"}, + name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0].RecurrentFee", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]", "RecurrentFee"}, exp: "2", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.AttributeIDs", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "AttributeIDs"}, + name: "Charges[0].Charging.Account.Balances.balance1.AttributeIDs", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "AttributeIDs"}, exp: `["attr1"]`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.AttributeIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "AttributeIDs[0]"}, + name: "Charges[0].Charging.Account.Balances.balance1.AttributeIDs[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "AttributeIDs[0]"}, exp: "attr1", }, { - name: "Charges[0].Accounting.Account.Balances.balance1.RateProfileIDs", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "RateProfileIDs"}, + name: "Charges[0].Charging.Account.Balances.balance1.RateProfileIDs", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "RateProfileIDs"}, exp: `["rate_prf1"]`, }, { - name: "Charges[0].Accounting.Account.Balances.balance1.RateProfileIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "RateProfileIDs[0]"}, + name: "Charges[0].Charging.Account.Balances.balance1.RateProfileIDs[0]", + fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "RateProfileIDs[0]"}, exp: "rate_prf1", }, { - name: "Charges[0].Accounting.Balance", - fields: []string{"Charges[0]", "Accounting", "Balance"}, + name: "Charges[0].Charging.Balance", + fields: []string{"Charges[0]", "Charging", "Balance"}, exp: `{"ID":"balance1","FilterIDs":["fltr4"],"Weights":[{"FilterIDs":["fltr3"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr3"],"Blocker":true}],"Type":"*monetary","Units":1,"UnitFactors":[{"FilterIDs":["fltr1","fltr2"],"Factor":2}],"Opts":{"opt1":"value1"},"CostIncrements":[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}],"AttributeIDs":["attr1"],"RateProfileIDs":["rate_prf1"]}`, }, { - name: "Charges[0].Accounting.Balance.ID", - fields: []string{"Charges[0]", "Accounting", "Balance", "ID"}, + name: "Charges[0].Charging.Balance.ID", + fields: []string{"Charges[0]", "Charging", "Balance", "ID"}, exp: "balance1", }, { - name: "Charges[0].Accounting.Balance.FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Balance", "FilterIDs"}, + name: "Charges[0].Charging.Balance.FilterIDs", + fields: []string{"Charges[0]", "Charging", "Balance", "FilterIDs"}, exp: `["fltr4"]`, }, { - name: "Charges[0].Accounting.Balance.FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Balance", "FilterIDs[0]"}, + name: "Charges[0].Charging.Balance.FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "Balance", "FilterIDs[0]"}, exp: "fltr4", }, { - name: "Charges[0].Accounting.Balance.Weights", - fields: []string{"Charges[0]", "Accounting", "Balance", "Weights"}, + name: "Charges[0].Charging.Balance.Weights", + fields: []string{"Charges[0]", "Charging", "Balance", "Weights"}, exp: "fltr3;20", }, { - name: "Charges[0].Accounting.Balance.Weights[0]", - fields: []string{"Charges[0]", "Accounting", "Balance", "Weights[0]"}, + name: "Charges[0].Charging.Balance.Weights[0]", + fields: []string{"Charges[0]", "Charging", "Balance", "Weights[0]"}, exp: `{"FilterIDs":["fltr3"],"Weight":20}`, }, { - name: "Charges[0].Accounting.Balance.Weights[0].FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Balance", "Weights[0]", "FilterIDs"}, + name: "Charges[0].Charging.Balance.Weights[0].FilterIDs", + fields: []string{"Charges[0]", "Charging", "Balance", "Weights[0]", "FilterIDs"}, exp: `["fltr3"]`, }, { - name: "Charges[0].Accounting.Balance.Weights[0].FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Balance", "Weights[0]", "FilterIDs[0]"}, + name: "Charges[0].Charging.Balance.Weights[0].FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "Balance", "Weights[0]", "FilterIDs[0]"}, exp: "fltr3", }, { - name: "Charges[0].Accounting.Balance.Weights[0].Weight", - fields: []string{"Charges[0]", "Accounting", "Balance", "Weights[0]", "Weight"}, + name: "Charges[0].Charging.Balance.Weights[0].Weight", + fields: []string{"Charges[0]", "Charging", "Balance", "Weights[0]", "Weight"}, exp: "20", }, { - name: "Charges[0].Accounting.Balance.Blockers", - fields: []string{"Charges[0]", "Accounting", "Balance", "Blockers"}, + name: "Charges[0].Charging.Balance.Blockers", + fields: []string{"Charges[0]", "Charging", "Balance", "Blockers"}, exp: "fltr3;true", }, { - name: "Charges[0].Accounting.Balance.Blockers[0]", - fields: []string{"Charges[0]", "Accounting", "Balance", "Blockers[0]"}, + name: "Charges[0].Charging.Balance.Blockers[0]", + fields: []string{"Charges[0]", "Charging", "Balance", "Blockers[0]"}, exp: `{"FilterIDs":["fltr3"],"Blocker":true}`, }, { - name: "Charges[0].Accounting.Balance.Blockers[0].FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Balance", "Blockers[0]", "FilterIDs"}, + name: "Charges[0].Charging.Balance.Blockers[0].FilterIDs", + fields: []string{"Charges[0]", "Charging", "Balance", "Blockers[0]", "FilterIDs"}, exp: `["fltr3"]`, }, { - name: "Charges[0].Accounting.Balance.Blockers[0].FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Balance", "Blockers[0]", "FilterIDs[0]"}, + name: "Charges[0].Charging.Balance.Blockers[0].FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "Balance", "Blockers[0]", "FilterIDs[0]"}, exp: "fltr3", }, { - name: "Charges[0].Accounting.Balance.Blockers[0].Blocker", - fields: []string{"Charges[0]", "Accounting", "Balance", "Blockers[0]", "Blocker"}, + name: "Charges[0].Charging.Balance.Blockers[0].Blocker", + fields: []string{"Charges[0]", "Charging", "Balance", "Blockers[0]", "Blocker"}, exp: "true", }, { - name: "Charges[0].Accounting.Balance.Type", - fields: []string{"Charges[0]", "Accounting", "Balance", "Type"}, + name: "Charges[0].Charging.Balance.Type", + fields: []string{"Charges[0]", "Charging", "Balance", "Type"}, exp: MetaMonetary, }, { - name: "Charges[0].Accounting.Balance.Units", - fields: []string{"Charges[0]", "Accounting", "Balance", "Units"}, + name: "Charges[0].Charging.Balance.Units", + fields: []string{"Charges[0]", "Charging", "Balance", "Units"}, exp: "1", }, { - name: "Charges[0].Accounting.Balance.UnitFactors", - fields: []string{"Charges[0]", "Accounting", "Balance", "UnitFactors"}, + name: "Charges[0].Charging.Balance.UnitFactors", + fields: []string{"Charges[0]", "Charging", "Balance", "UnitFactors"}, exp: `[{"FilterIDs":["fltr1","fltr2"],"Factor":2}]`, }, { - name: "Charges[0].Accounting.Balance.UnitFactors[0]", - fields: []string{"Charges[0]", "Accounting", "Balance", "UnitFactors[0]"}, + name: "Charges[0].Charging.Balance.UnitFactors[0]", + fields: []string{"Charges[0]", "Charging", "Balance", "UnitFactors[0]"}, exp: `{"FilterIDs":["fltr1","fltr2"],"Factor":2}`, }, { - name: "Charges[0].Accounting.Balance.UnitFactors[0].FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Balance", "UnitFactors[0]", "FilterIDs"}, + name: "Charges[0].Charging.Balance.UnitFactors[0].FilterIDs", + fields: []string{"Charges[0]", "Charging", "Balance", "UnitFactors[0]", "FilterIDs"}, exp: `["fltr1","fltr2"]`, }, { - name: "Charges[0].Accounting.Balance.UnitFactors[0].FilterIDs[1]", - fields: []string{"Charges[0]", "Accounting", "Balance", "UnitFactors[0]", "FilterIDs[1]"}, + name: "Charges[0].Charging.Balance.UnitFactors[0].FilterIDs[1]", + fields: []string{"Charges[0]", "Charging", "Balance", "UnitFactors[0]", "FilterIDs[1]"}, exp: "fltr2", }, { - name: "Charges[0].Accounting.Balance.UnitFactors[0].Factor", - fields: []string{"Charges[0]", "Accounting", "Balance", "UnitFactors[0]", "Factor"}, + name: "Charges[0].Charging.Balance.UnitFactors[0].Factor", + fields: []string{"Charges[0]", "Charging", "Balance", "UnitFactors[0]", "Factor"}, exp: "2", }, { - name: "Charges[0].Accounting.Balance.Opts", - fields: []string{"Charges[0]", "Accounting", "Balance", "Opts"}, + name: "Charges[0].Charging.Balance.Opts", + fields: []string{"Charges[0]", "Charging", "Balance", "Opts"}, exp: `{"opt1":"value1"}`, }, { - name: "Charges[0].Accounting.Balance.Opts.opt1", - fields: []string{"Charges[0]", "Accounting", "Balance", "Opts", "opt1"}, + name: "Charges[0].Charging.Balance.Opts.opt1", + fields: []string{"Charges[0]", "Charging", "Balance", "Opts", "opt1"}, exp: "value1", }, { - name: "Charges[0].Accounting.Balance.CostIncrements", - fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements"}, + name: "Charges[0].Charging.Balance.CostIncrements", + fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements"}, exp: `[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}]`, }, { - name: "Charges[0].Accounting.Balance.CostIncrements[0]", - fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]"}, + name: "Charges[0].Charging.Balance.CostIncrements[0]", + fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]"}, exp: `{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}`, }, { - name: "Charges[0].Accounting.Balance.CostIncrements[0].FilterIDs", - fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]", "FilterIDs"}, + name: "Charges[0].Charging.Balance.CostIncrements[0].FilterIDs", + fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]", "FilterIDs"}, exp: `["fltr3"]`, }, { - name: "Charges[0].Accounting.Balance.CostIncrements[0].FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]", "FilterIDs[0]"}, + name: "Charges[0].Charging.Balance.CostIncrements[0].FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]", "FilterIDs[0]"}, exp: "fltr3", }, { - name: "Charges[0].Accounting.Balance.CostIncrements[0].Increment", - fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]", "Increment"}, + name: "Charges[0].Charging.Balance.CostIncrements[0].Increment", + fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]", "Increment"}, exp: "3", }, { - name: "Charges[0].Accounting.Balance.CostIncrements[0].FixedFee", - fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]", "FixedFee"}, + name: "Charges[0].Charging.Balance.CostIncrements[0].FixedFee", + fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]", "FixedFee"}, exp: "1", }, { - name: "Charges[0].Accounting.Balance.CostIncrements[0].RecurrentFee", - fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]", "RecurrentFee"}, + name: "Charges[0].Charging.Balance.CostIncrements[0].RecurrentFee", + fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]", "RecurrentFee"}, exp: "2", }, { - name: "Charges[0].Accounting.Balance.AttributeIDs", - fields: []string{"Charges[0]", "Accounting", "Balance", "AttributeIDs"}, + name: "Charges[0].Charging.Balance.AttributeIDs", + fields: []string{"Charges[0]", "Charging", "Balance", "AttributeIDs"}, exp: `["attr1"]`, }, { - name: "Charges[0].Accounting.Balance.AttributeIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Balance", "AttributeIDs[0]"}, + name: "Charges[0].Charging.Balance.AttributeIDs[0]", + fields: []string{"Charges[0]", "Charging", "Balance", "AttributeIDs[0]"}, exp: "attr1", }, { - name: "Charges[0].Accounting.Balance.RateProfileIDs", - fields: []string{"Charges[0]", "Accounting", "Balance", "RateProfileIDs"}, + name: "Charges[0].Charging.Balance.RateProfileIDs", + fields: []string{"Charges[0]", "Charging", "Balance", "RateProfileIDs"}, exp: `["rate_prf1"]`, }, { - name: "Charges[0].Accounting.Balance.RateProfileIDs[0]", - fields: []string{"Charges[0]", "Accounting", "Balance", "RateProfileIDs[0]"}, + name: "Charges[0].Charging.Balance.RateProfileIDs[0]", + fields: []string{"Charges[0]", "Charging", "Balance", "RateProfileIDs[0]"}, exp: "rate_prf1", }, { - name: "Charges[0].Accounting.UnitFactor", - fields: []string{"Charges[0]", "Accounting", "UnitFactor"}, + name: "Charges[0].Charging.UnitFactor", + fields: []string{"Charges[0]", "Charging", "UnitFactor"}, exp: `{"FilterIDs":["fltr1","fltr2"],"Factor":2}`, }, { - name: "Charges[0].Accounting.UnitFactor.FilterIDs", - fields: []string{"Charges[0]", "Accounting", "UnitFactor", "FilterIDs"}, + name: "Charges[0].Charging.UnitFactor.FilterIDs", + fields: []string{"Charges[0]", "Charging", "UnitFactor", "FilterIDs"}, exp: `["fltr1","fltr2"]`, }, { - name: "Charges[0].Accounting.UnitFactor.FilterIDs[0]", - fields: []string{"Charges[0]", "Accounting", "UnitFactor", "FilterIDs[0]"}, + name: "Charges[0].Charging.UnitFactor.FilterIDs[0]", + fields: []string{"Charges[0]", "Charging", "UnitFactor", "FilterIDs[0]"}, exp: "fltr1", }, { - name: "Charges[0].Accounting.UnitFactor.Factor", - fields: []string{"Charges[0]", "Accounting", "UnitFactor", "Factor"}, + name: "Charges[0].Charging.UnitFactor.Factor", + fields: []string{"Charges[0]", "Charging", "UnitFactor", "Factor"}, exp: "2", }, { - name: "Charges[0].Accounting.Rating", - fields: []string{"Charges[0]", "Accounting", "Rating"}, + name: "Charges[0].Charging.Rating", + fields: []string{"Charges[0]", "Charging", "Rating"}, exp: `{"IntervalStart":5,"Increments":[{"IncrementStart":9,"RateIntervalIndex":3,"RateID":"rate1","CompressFactor":1,"Usage":10}],"CompressFactor":3}`, }, { - name: "Charges[0].Accounting.Rating.IntervalStart", - fields: []string{"Charges[0]", "Accounting", "Rating", "IntervalStart"}, + name: "Charges[0].Charging.Rating.IntervalStart", + fields: []string{"Charges[0]", "Charging", "Rating", "IntervalStart"}, exp: "5", }, { - name: "Charges[0].Accounting.Rating.Increments", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments"}, + name: "Charges[0].Charging.Rating.Increments", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments"}, exp: `[{"IncrementStart":9,"RateIntervalIndex":3,"RateID":"rate1","CompressFactor":1,"Usage":10}]`, }, { - name: "Charges[0].Accounting.Rating.Increments[0]", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]"}, + name: "Charges[0].Charging.Rating.Increments[0]", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]"}, exp: `{"IncrementStart":9,"RateIntervalIndex":3,"RateID":"rate1","CompressFactor":1,"Usage":10}`, }, { - name: "Charges[0].Accounting.Rating.Increments[0].IncrementStart", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "IncrementStart"}, + name: "Charges[0].Charging.Rating.Increments[0].IncrementStart", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "IncrementStart"}, exp: "9", }, { - name: "Charges[0].Accounting.Rating.Increments[0].RateIntervalIndex", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "RateIntervalIndex"}, + name: "Charges[0].Charging.Rating.Increments[0].RateIntervalIndex", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "RateIntervalIndex"}, exp: "3", }, { - name: "Charges[0].Accounting.Rating.Increments[0].RateID", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "RateID"}, + name: "Charges[0].Charging.Rating.Increments[0].RateID", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "RateID"}, exp: "rate1", }, { - name: "Charges[0].Accounting.Rating.Increments[0].CompressFactor", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "CompressFactor"}, + name: "Charges[0].Charging.Rating.Increments[0].CompressFactor", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "CompressFactor"}, exp: "1", }, { - name: "Charges[0].Accounting.Rating.Increments[0].Usage", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Usage"}, + name: "Charges[0].Charging.Rating.Increments[0].Usage", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Usage"}, exp: "10", }, { - name: "Charges[0].Accounting.Rating.Increments[0].Rate", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate"}, + name: "Charges[0].Charging.Rating.Increments[0].Rate", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate"}, exp: `{"IntervalStart":1,"FixedFee":2,"RecurrentFee":3,"Unit":4,"Increment":5}`, }, { - name: "Charges[0].Accounting.Rating.Increments[0].Rate.IntervalStart", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate", "IntervalStart"}, + name: "Charges[0].Charging.Rating.Increments[0].Rate.IntervalStart", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate", "IntervalStart"}, exp: "1", }, { - name: "Charges[0].Accounting.Rating.Increments[0].Rate.FixedFee", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate", "FixedFee"}, + name: "Charges[0].Charging.Rating.Increments[0].Rate.FixedFee", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate", "FixedFee"}, exp: "2", }, { - name: "Charges[0].Accounting.Rating.Increments[0].Rate.RecurrentFee", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate", "RecurrentFee"}, + name: "Charges[0].Charging.Rating.Increments[0].Rate.RecurrentFee", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate", "RecurrentFee"}, exp: "3", }, { - name: "Charges[0].Accounting.Rating.Increments[0].Rate.Unit", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate", "Unit"}, + name: "Charges[0].Charging.Rating.Increments[0].Rate.Unit", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate", "Unit"}, exp: "4", }, { - name: "Charges[0].Accounting.Rating.Increments[0].Rate.Increment", - fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate", "Increment"}, + name: "Charges[0].Charging.Rating.Increments[0].Rate.Increment", + fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate", "Increment"}, exp: "5", }, { - name: "Charges[0].Accounting.Rating.CompressFactor", - fields: []string{"Charges[0]", "Accounting", "Rating", "CompressFactor"}, + name: "Charges[0].Charging.Rating.CompressFactor", + fields: []string{"Charges[0]", "Charging", "Rating", "CompressFactor"}, exp: "3", }, { - name: "Charges[1].Rating", - fields: []string{"Charges[1]", "Rating"}, + name: "Charges[1].Charging", + fields: []string{"Charges[1]", "Charging"}, exp: `{"IntervalStart":4,"Increments":[{"IncrementStart":5,"RateIntervalIndex":1,"RateID":"rate1","CompressFactor":1,"Usage":6},{"IncrementStart":7,"RateIntervalIndex":2,"RateID":"rate2","CompressFactor":1,"Usage":8}],"CompressFactor":3}`, }, { - name: "Charges[1].Rating.IntervalStart", - fields: []string{"Charges[1]", "Rating", "IntervalStart"}, + name: "Charges[1].Charging.IntervalStart", + fields: []string{"Charges[1]", "Charging", "IntervalStart"}, exp: "4", }, { - name: "Charges[1].Rating.Increments", - fields: []string{"Charges[1]", "Rating", "Increments"}, + name: "Charges[1].Charging.Increments", + fields: []string{"Charges[1]", "Charging", "Increments"}, exp: `[{"IncrementStart":5,"RateIntervalIndex":1,"RateID":"rate1","CompressFactor":1,"Usage":6},{"IncrementStart":7,"RateIntervalIndex":2,"RateID":"rate2","CompressFactor":1,"Usage":8}]`, }, { - name: "Charges[1].Rating.Increments[1]", - fields: []string{"Charges[1]", "Rating", "Increments[1]"}, + name: "Charges[1].Charging.Increments[1]", + fields: []string{"Charges[1]", "Charging", "Increments[1]"}, exp: `{"IncrementStart":7,"RateIntervalIndex":2,"RateID":"rate2","CompressFactor":1,"Usage":8}`, }, { - name: "Charges[1].Rating.Increments[1].IncrementStart", - fields: []string{"Charges[1]", "Rating", "Increments[1]", "IncrementStart"}, + name: "Charges[1].Charging.Increments[1].IncrementStart", + fields: []string{"Charges[1]", "Charging", "Increments[1]", "IncrementStart"}, exp: "7", }, { - name: "Charges[1].Rating.Increments[1].RateIntervalIndex", - fields: []string{"Charges[1]", "Rating", "Increments[1]", "RateIntervalIndex"}, + name: "Charges[1].Charging.Increments[1].RateIntervalIndex", + fields: []string{"Charges[1]", "Charging", "Increments[1]", "RateIntervalIndex"}, exp: "2", }, { - name: "Charges[1].Rating.Increments[1].RateID", - fields: []string{"Charges[1]", "Rating", "Increments[1]", "RateID"}, + name: "Charges[1].Charging.Increments[1].RateID", + fields: []string{"Charges[1]", "Charging", "Increments[1]", "RateID"}, exp: "rate2", }, { - name: "Charges[1].Rating.Increments[1].CompressFactor", - fields: []string{"Charges[1]", "Rating", "Increments[1]", "CompressFactor"}, + name: "Charges[1].Charging.Increments[1].CompressFactor", + fields: []string{"Charges[1]", "Charging", "Increments[1]", "CompressFactor"}, exp: "1", }, { - name: "Charges[1].Rating.Increments[1].Usage", - fields: []string{"Charges[1]", "Rating", "Increments[1]", "Usage"}, + name: "Charges[1].Charging.Increments[1].Usage", + fields: []string{"Charges[1]", "Charging", "Increments[1]", "Usage"}, exp: "8", }, { - name: "Charges[1].Rating.Increments[1].Rate", - fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate"}, + name: "Charges[1].Charging.Increments[1].Rate", + fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate"}, exp: `{"IntervalStart":6,"FixedFee":7,"RecurrentFee":8,"Unit":9,"Increment":10}`, }, { - name: "Charges[1].Rating.Increments[1].Rate.IntervalStart", - fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate", "IntervalStart"}, + name: "Charges[1].Charging.Increments[1].Rate.IntervalStart", + fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate", "IntervalStart"}, exp: "6", }, { - name: "Charges[1].Rating.Increments[1].Rate.FixedFee", - fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate", "FixedFee"}, + name: "Charges[1].Charging.Increments[1].Rate.FixedFee", + fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate", "FixedFee"}, exp: "7", }, { - name: "Charges[1].Rating.Increments[1].Rate.RecurrentFee", - fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate", "RecurrentFee"}, + name: "Charges[1].Charging.Increments[1].Rate.RecurrentFee", + fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate", "RecurrentFee"}, exp: "8", }, { - name: "Charges[1].Rating.Increments[1].Rate.Unit", - fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate", "Unit"}, + name: "Charges[1].Charging.Increments[1].Rate.Unit", + fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate", "Unit"}, exp: "9", }, { - name: "Charges[1].Rating.Increments[1].Rate.Increment", - fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate", "Increment"}, + name: "Charges[1].Charging.Increments[1].Rate.Increment", + fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate", "Increment"}, exp: "10", }, { - name: "Charges[1].Rating.CompressFactor", - fields: []string{"Charges[1]", "Rating", "CompressFactor"}, + name: "Charges[1].Charging.CompressFactor", + fields: []string{"Charges[1]", "Charging", "CompressFactor"}, exp: "3", }, }