mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-20 06:38:45 +05:00
[RouteS] Add new field RouteRateProfileIDs in RateProfiles.csv
This commit is contained in:
committed by
Dan Christian Bogos
parent
27fce31f8b
commit
d10cc4b4c3
@@ -256,11 +256,11 @@ cgrates.org,FLTR_DST_DE,*destinations,~*req.Destination,DST_DE,2014-07-29T15:00:
|
||||
cgrates.org,FLTR_DST_NL,*destinations,~*req.Destination,DST_NL,2014-07-29T15:00:00Z
|
||||
`
|
||||
RoutesCSVContent = `
|
||||
#Tenant[0],ID[1],FilterIDs[2],ActivationInterval[3],Sorting[4],SortingParameters[5],RouteID[6],RouteFilterIDs[7],RouteAccountIDs[8],RouteRatingPlanIDs[9],RouteResourceIDs[10],RouteStatIDs[11],RouteWeight[12],RouteBlocker[13],RouteParameters[14],Weight[15]
|
||||
cgrates.org,RoutePrf1,*string:~*req.Account:dan,2014-07-29T15:00:00Z,*lc,,route1,FLTR_ACNT_dan,Account1;Account1_1,RPL_1,ResGroup1,Stat1,10,true,param1,20
|
||||
cgrates.org,RoutePrf1,,,,,route1,,,RPL_2,ResGroup2,,10,,,
|
||||
cgrates.org,RoutePrf1,,,,,route1,FLTR_DST_DE,Account2,RPL_3,ResGroup3,Stat2,10,,,
|
||||
cgrates.org,RoutePrf1,,,,,route1,,,,ResGroup4,Stat3,10,,,
|
||||
#Tenant[0],ID[1],FilterIDs[2],ActivationInterval[3],Sorting[4],SortingParameters[5],RouteID[6],RouteFilterIDs[7],RouteAccountIDs[8],RouteRatingPlanIDs[9],RouteRateProfileIDs[10],RouteResourceIDs[11],RouteStatIDs[12],RouteWeight[13],RouteBlocker[14],RouteParameters[15],Weight[16]
|
||||
cgrates.org,RoutePrf1,*string:~*req.Account:dan,2014-07-29T15:00:00Z,*lc,,route1,FLTR_ACNT_dan,Account1;Account1_1,RPL_1,,ResGroup1,Stat1,10,true,param1,20
|
||||
cgrates.org,RoutePrf1,,,,,route1,,,RPL_2,,ResGroup2,,10,,,
|
||||
cgrates.org,RoutePrf1,,,,,route1,FLTR_DST_DE,Account2,RPL_3,RT_ALWAYS,ResGroup3,Stat2,10,,,
|
||||
cgrates.org,RoutePrf1,,,,,route1,,,,,ResGroup4,Stat3,10,,,
|
||||
`
|
||||
AttributesCSVContent = `
|
||||
#Tenant,ID,Contexts,FilterIDs,ActivationInterval,AttributeFilterIDs,Path,Type,Value,Blocker,Weight
|
||||
|
||||
@@ -1271,6 +1271,7 @@ func TestLoadRouteProfiles(t *testing.T) {
|
||||
FilterIDs: []string{"FLTR_DST_DE"},
|
||||
AccountIDs: []string{"Account2"},
|
||||
RatingPlanIDs: []string{"RPL_3"},
|
||||
RateProfileIDs: []string{"RT_ALWAYS"},
|
||||
ResourceIDs: []string{"ResGroup3"},
|
||||
StatIDs: []string{"Stat2"},
|
||||
Weight: 10,
|
||||
|
||||
@@ -1901,7 +1901,7 @@ type TPRoutes []*TpRoute
|
||||
func (tps TPRoutes) CSVHeader() (result []string) {
|
||||
return []string{"#" + utils.Tenant, utils.ID, utils.FilterIDs, utils.ActivationIntervalString,
|
||||
utils.Sorting, utils.SortingParameters, utils.RouteID, utils.RouteFilterIDs,
|
||||
utils.RouteAccountIDs, utils.RouteRatingplanIDs, utils.RouteResourceIDs,
|
||||
utils.RouteAccountIDs, utils.RouteRatingplanIDs, utils.RouteRateProfileIDs, utils.RouteResourceIDs,
|
||||
utils.RouteStatIDs, utils.RouteWeight, utils.RouteBlocker,
|
||||
utils.RouteParameters, utils.Weight,
|
||||
}
|
||||
@@ -1949,6 +1949,10 @@ func (tps TPRoutes) AsTPRouteProfile() (result []*utils.TPRouteProfile) {
|
||||
ratingPlanSplit := strings.Split(tp.RouteRatingplanIDs, utils.INFIELD_SEP)
|
||||
sup.RatingPlanIDs = append(sup.RatingPlanIDs, ratingPlanSplit...)
|
||||
}
|
||||
if tp.RouteRateProfileIDs != utils.EmptyString {
|
||||
rateProfileSplit := strings.Split(tp.RouteRateProfileIDs, utils.INFIELD_SEP)
|
||||
sup.RateProfileIDs = append(sup.RateProfileIDs, rateProfileSplit...)
|
||||
}
|
||||
if tp.RouteResourceIDs != utils.EmptyString {
|
||||
resSplit := strings.Split(tp.RouteResourceIDs, utils.INFIELD_SEP)
|
||||
sup.ResourceIDs = append(sup.ResourceIDs, resSplit...)
|
||||
@@ -2064,6 +2068,12 @@ func APItoModelTPRoutes(st *utils.TPRouteProfile) (mdls TPRoutes) {
|
||||
}
|
||||
mdl.RouteRatingplanIDs += val
|
||||
}
|
||||
for i, val := range supl.RateProfileIDs {
|
||||
if i != 0 {
|
||||
mdl.RouteRateProfileIDs += utils.INFIELD_SEP
|
||||
}
|
||||
mdl.RouteRateProfileIDs += val
|
||||
}
|
||||
for i, val := range supl.FilterIDs {
|
||||
if i != 0 {
|
||||
mdl.RouteFilterIDs += utils.INFIELD_SEP
|
||||
@@ -2117,6 +2127,7 @@ func APItoRouteProfile(tpRp *utils.TPRouteProfile, timezone string) (rp *RoutePr
|
||||
Weight: route.Weight,
|
||||
Blocker: route.Blocker,
|
||||
RatingPlanIDs: route.RatingPlanIDs,
|
||||
RateProfileIDs: route.RateProfileIDs,
|
||||
AccountIDs: route.AccountIDs,
|
||||
FilterIDs: route.FilterIDs,
|
||||
ResourceIDs: route.ResourceIDs,
|
||||
@@ -2145,6 +2156,7 @@ func RouteProfileToAPI(rp *RouteProfile) (tpRp *utils.TPRouteProfile) {
|
||||
FilterIDs: route.FilterIDs,
|
||||
AccountIDs: route.AccountIDs,
|
||||
RatingPlanIDs: route.RatingPlanIDs,
|
||||
RateProfileIDs: route.RateProfileIDs,
|
||||
ResourceIDs: route.ResourceIDs,
|
||||
StatIDs: route.StatIDs,
|
||||
Weight: route.Weight,
|
||||
|
||||
@@ -2831,7 +2831,7 @@ func TestCsvHeader(t *testing.T) {
|
||||
eOut := []string{
|
||||
"#" + utils.Tenant, utils.ID, utils.FilterIDs, utils.ActivationIntervalString,
|
||||
utils.Sorting, utils.SortingParameters, utils.RouteID, utils.RouteFilterIDs,
|
||||
utils.RouteAccountIDs, utils.RouteRatingplanIDs, utils.RouteResourceIDs,
|
||||
utils.RouteAccountIDs, utils.RouteRatingplanIDs, utils.RouteRateProfileIDs, utils.RouteResourceIDs,
|
||||
utils.RouteStatIDs, utils.RouteWeight, utils.RouteBlocker,
|
||||
utils.RouteParameters, utils.Weight,
|
||||
}
|
||||
|
||||
@@ -349,25 +349,26 @@ func (t TBLVersion) TableName() string {
|
||||
}
|
||||
|
||||
type TpRoute struct {
|
||||
PK uint `gorm:"primary_key"`
|
||||
Tpid string
|
||||
Tenant string `index:"0" re:""`
|
||||
ID string `index:"1" re:""`
|
||||
FilterIDs string `index:"2" re:""`
|
||||
ActivationInterval string `index:"3" re:""`
|
||||
Sorting string `index:"4" re:""`
|
||||
SortingParameters string `index:"5" re:""`
|
||||
RouteID string `index:"6" re:""`
|
||||
RouteFilterIDs string `index:"7" re:""`
|
||||
RouteAccountIDs string `index:"8" re:""`
|
||||
RouteRatingplanIDs string `index:"9" re:""`
|
||||
RouteResourceIDs string `index:"10" re:""`
|
||||
RouteStatIDs string `index:"11" re:""`
|
||||
RouteWeight float64 `index:"12" re:"\d+\.?\d*"`
|
||||
RouteBlocker bool `index:"13" re:""`
|
||||
RouteParameters string `index:"14" re:""`
|
||||
Weight float64 `index:"15" re:"\d+\.?\d*"`
|
||||
CreatedAt time.Time
|
||||
PK uint `gorm:"primary_key"`
|
||||
Tpid string
|
||||
Tenant string `index:"0" re:""`
|
||||
ID string `index:"1" re:""`
|
||||
FilterIDs string `index:"2" re:""`
|
||||
ActivationInterval string `index:"3" re:""`
|
||||
Sorting string `index:"4" re:""`
|
||||
SortingParameters string `index:"5" re:""`
|
||||
RouteID string `index:"6" re:""`
|
||||
RouteFilterIDs string `index:"7" re:""`
|
||||
RouteAccountIDs string `index:"8" re:""`
|
||||
RouteRatingplanIDs string `index:"9" re:""`
|
||||
RouteRateProfileIDs string `index:"10" re:""`
|
||||
RouteResourceIDs string `index:"11" re:""`
|
||||
RouteStatIDs string `index:"12" re:""`
|
||||
RouteWeight float64 `index:"13" re:"\d+\.?\d*"`
|
||||
RouteBlocker bool `index:"14" re:""`
|
||||
RouteParameters string `index:"15" re:""`
|
||||
Weight float64 `index:"16" re:"\d+\.?\d*"`
|
||||
CreatedAt time.Time
|
||||
}
|
||||
|
||||
type TPAttribute struct {
|
||||
|
||||
@@ -35,6 +35,7 @@ type Route struct {
|
||||
FilterIDs []string
|
||||
AccountIDs []string
|
||||
RatingPlanIDs []string // used when computing price
|
||||
RateProfileIDs []string // used when computing price
|
||||
ResourceIDs []string // queried in some strategies
|
||||
StatIDs []string // queried in some strategies
|
||||
Weight float64
|
||||
@@ -285,15 +286,7 @@ func (rpS *RouteService) costForEvent(ev *utils.CGREvent,
|
||||
utils.OptsRatesStartTime: sTime,
|
||||
utils.OptsRatesUsage: usage,
|
||||
},
|
||||
CGREvent: &utils.CGREvent{ // add the rest of the field in event
|
||||
Tenant: ev.Tenant,
|
||||
ID: utils.UUIDSha1Prefix(),
|
||||
Event: map[string]interface{}{
|
||||
utils.Account: acnt,
|
||||
utils.Subject: subj,
|
||||
utils.Destination: dst,
|
||||
},
|
||||
},
|
||||
CGREvent: ev,
|
||||
},
|
||||
}, &rateRply); err != nil {
|
||||
return nil, err
|
||||
|
||||
Reference in New Issue
Block a user