diff --git a/engine/action.go b/engine/action.go index 2ecb51441..f3f7e65de 100644 --- a/engine/action.go +++ b/engine/action.go @@ -1366,19 +1366,14 @@ func export(ub *Account, a *Action, _ Actions, _ *FilterS, extraData any, _ Shar Tenant: utils.NewTenantID(ub.ID).Tenant, ID: utils.GenUUID(), Event: map[string]any{ - utils.AccountField: ub.ID, - utils.EventType: utils.AccountUpdate, - utils.EventSource: utils.AccountService, - utils.AllowNegative: ub.AllowNegative, - utils.Disabled: ub.Disabled, - utils.BalanceMap: ub.BalanceMap, - utils.UnitCounters: ub.UnitCounters, - utils.ActionTriggers: ub.ActionTriggers, - utils.UpdateTime: ub.UpdateTime, + utils.AccountField: ub, + utils.EventType: utils.AccountUpdate, + utils.EventSource: utils.AccountService, }, APIOpts: map[string]any{ utils.MetaEventType: utils.AccountUpdate, + utils.MetaEventTime: time.Now(), }, } case extraData != nil: diff --git a/engine/argees.go b/engine/argees.go index 997c1c628..56ee91f9d 100644 --- a/engine/argees.go +++ b/engine/argees.go @@ -107,7 +107,18 @@ func (cgr *CGREventWithEeIDs) UnmarshalJSON(data []byte) error { // ensuring the type of CostDetails is *EventCost. temp.Event[utils.CostDetails] = &ec } - + isAccountUpdate := temp.Event[utils.EventType] == utils.AccountUpdate + if accEv, has := temp.Event[utils.AccountField]; has && isAccountUpdate { + accBytes, err := json.Marshal(accEv) + if err != nil { + return err + } + var as Account + if err = json.Unmarshal(accBytes, &as); err != nil { + return err + } + temp.Event[utils.AccountField] = &as + } // Assign the extracted EeIDs and CGREvent // to the main struct fields. cgr.EeIDs = temp.EeIDs diff --git a/utils/consts.go b/utils/consts.go index 18b93d8d6..33f19d14d 100644 --- a/utils/consts.go +++ b/utils/consts.go @@ -2830,6 +2830,7 @@ const ( OptsAttributesProfileRuns = "*attrProfileRuns" OptsAttributesProfileIgnoreFilters = "*attrProfileIgnoreFilters" MetaEventType = "*eventType" + MetaEventTime = "*eventTime" EventType = "EventType" SchedulerInit = "SchedulerInit"