package migrator import ( "strings" "time" "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/utils" ) type v1ActionTrigger struct { Id string ThresholdType string ThresholdValue float64 Recurrent bool MinSleep time.Duration BalanceId string BalanceType string BalanceDirection string BalanceDestinationIds string BalanceWeight float64 BalanceExpirationDate time.Time BalanceTimingTags string BalanceRatingSubject string BalanceCategory string BalanceSharedGroup string BalanceDisabled bool Weight float64 ActionsId string MinQueuedItems int Executed bool } type v1ActionTriggers []*v1ActionTrigger func (v1Act v1ActionTrigger) AsActionTrigger() (at engine.ActionTrigger) { at = engine.ActionTrigger{ UniqueID: v1Act.Id, ThresholdType: v1Act.ThresholdType, ThresholdValue: v1Act.ThresholdValue, Recurrent: v1Act.Recurrent, MinSleep: v1Act.MinSleep, Weight: v1Act.Weight, ActionsID: v1Act.ActionsId, MinQueuedItems: v1Act.MinQueuedItems, Executed: v1Act.Executed, } bf := &engine.BalanceFilter{} if v1Act.BalanceId != "" { bf.ID = utils.StringPointer(v1Act.BalanceId) } if v1Act.BalanceType != "" { bf.Type = utils.StringPointer(v1Act.BalanceType) } if v1Act.BalanceRatingSubject != "" { bf.RatingSubject = utils.StringPointer(v1Act.BalanceRatingSubject) } if v1Act.BalanceDirection != "" { bf.Directions = utils.StringMapPointer(utils.ParseStringMap(v1Act.BalanceDirection)) } if v1Act.BalanceDestinationIds != "" { bf.DestinationIDs = utils.StringMapPointer(utils.ParseStringMap(v1Act.BalanceDestinationIds)) } if v1Act.BalanceTimingTags != "" { bf.TimingIDs = utils.StringMapPointer(utils.ParseStringMap(v1Act.BalanceTimingTags)) } if v1Act.BalanceCategory != "" { bf.Categories = utils.StringMapPointer(utils.ParseStringMap(v1Act.BalanceCategory)) } if v1Act.BalanceSharedGroup != "" { bf.SharedGroups = utils.StringMapPointer(utils.ParseStringMap(v1Act.BalanceSharedGroup)) } if v1Act.BalanceWeight != 0 { bf.Weight = utils.Float64Pointer(v1Act.BalanceWeight) } if v1Act.BalanceDisabled != false { bf.Disabled = utils.BoolPointer(v1Act.BalanceDisabled) } if !v1Act.BalanceExpirationDate.IsZero() { bf.ExpirationDate = utils.TimePointer(v1Act.BalanceExpirationDate) } at.Balance = bf if at.ThresholdType == "*min_counter" || at.ThresholdType == "*max_counter" { at.ThresholdType = strings.Replace(at.ThresholdType, "_", "_event_", 1) } return }