mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-15 13:19:53 +05:00
90 lines
2.6 KiB
Go
90 lines
2.6 KiB
Go
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
|
|
}
|