diff --git a/apier/v1/attributes_it_test.go b/apier/v1/attributes_it_test.go index 8a4374c56..7cd0a55c3 100644 --- a/apier/v1/attributes_it_test.go +++ b/apier/v1/attributes_it_test.go @@ -148,8 +148,8 @@ func testAttributeSGetAttributeForEvent(t *testing.T) { eAttrPrf := &engine.ExternalAttributeProfile{ Tenant: ev.Tenant, ID: "ATTR_1", - FilterIDs: []string{"FLTR_ACNT_1007"}, Context: utils.ALIAS_CONTEXT_RATING, + FilterIDs: []string{"FLTR_ACNT_1007"}, ActivationInterval: &utils.ActivationInterval{ ActivationTime: time.Date(2014, 1, 14, 0, 0, 0, 0, time.UTC)}, Substitute: []*engine.Substitute{ @@ -171,8 +171,8 @@ func testAttributeSGetAttributeForEvent(t *testing.T) { eAttrPrf2 := &engine.ExternalAttributeProfile{ Tenant: ev.Tenant, ID: "ATTR_1", - FilterIDs: []string{"FLTR_ACNT_1007"}, Context: utils.ALIAS_CONTEXT_RATING, + FilterIDs: []string{"FLTR_ACNT_1007"}, ActivationInterval: &utils.ActivationInterval{ ActivationTime: time.Date(2014, 1, 14, 0, 0, 0, 0, time.UTC)}, Substitute: []*engine.Substitute{ @@ -255,6 +255,7 @@ func testAttributeSSetAlsPrf(t *testing.T) { alsPrf = &engine.ExternalAttributeProfile{ Tenant: "cgrates.org", ID: "ApierTest", + Context: "*rating", FilterIDs: []string{"FLTR_ACNT_dan", "FLTR_DST_DE"}, ActivationInterval: &utils.ActivationInterval{ ActivationTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC).Local(), diff --git a/data/storage/mysql/create_tariffplan_tables.sql b/data/storage/mysql/create_tariffplan_tables.sql index cb4554179..c747479cf 100644 --- a/data/storage/mysql/create_tariffplan_tables.sql +++ b/data/storage/mysql/create_tariffplan_tables.sql @@ -530,9 +530,9 @@ CREATE TABLE tp_attributes ( `tpid` varchar(64) NOT NULL, `tenant` varchar(64) NOT NULL, `id` varchar(64) NOT NULL, + `context` varchar(64) NOT NULL, `filter_ids` varchar(64) NOT NULL, `activation_interval` varchar(64) NOT NULL, - `context` varchar(64) NOT NULL, `field_name` varchar(64) NOT NULL, `initial` varchar(64) NOT NULL, `alias` varchar(64) NOT NULL, diff --git a/data/storage/postgres/create_tariffplan_tables.sql b/data/storage/postgres/create_tariffplan_tables.sql index d406603f3..a4fd7911e 100644 --- a/data/storage/postgres/create_tariffplan_tables.sql +++ b/data/storage/postgres/create_tariffplan_tables.sql @@ -520,9 +520,9 @@ CREATE INDEX tp_suppliers_unique ON tp_suppliers ("tpid", "tenant", "id", "tpid" varchar(64) NOT NULL, "tenant"varchar(64) NOT NULL, "id" varchar(64) NOT NULL, + "context" varchar(64) NOT NULL, "filter_ids" varchar(64) NOT NULL, "activation_interval" varchar(64) NOT NULL, - "context" varchar(64) NOT NULL, "field_name" varchar(64) NOT NULL, "initial" varchar(64) NOT NULL, "alias" varchar(64) NOT NULL, diff --git a/data/tariffplans/testtp/Attributes.csv b/data/tariffplans/testtp/Attributes.csv index 48a2af10f..0aaa9758f 100644 --- a/data/tariffplans/testtp/Attributes.csv +++ b/data/tariffplans/testtp/Attributes.csv @@ -1,3 +1,3 @@ -#,Tenant,ID,FilterIDs,ActivationInterval,Context,FieldName,Initial,Alias,Append,Weight -cgrates.org,ALS1,FLTR_1,2014-07-29T15:00:00Z,con1,Field1,Initial1,Alias1,true,20 +#,Tenant,ID,Context,FilterIDs,ActivationInterval,FieldName,Initial,Alias,Append,Weight +cgrates.org,ALS1,con1,FLTR_1,2014-07-29T15:00:00Z,Field1,Initial1,Alias1,true,20 cgrates.org,ALS1,,,,Field2,Initial2,Alias2,false, diff --git a/data/tariffplans/tutorial/Attributes.csv b/data/tariffplans/tutorial/Attributes.csv index 95b10f76e..6cf08840e 100644 --- a/data/tariffplans/tutorial/Attributes.csv +++ b/data/tariffplans/tutorial/Attributes.csv @@ -1,3 +1,3 @@ -#Tenant,ID,FilterIDs,ActivationInterval,Context,FieldName,Initial,Alias,Append,Weight -cgrates.org,ATTR_1,FLTR_ACNT_1007,2014-01-14T00:00:00Z,*rating,Account,*any,1001,false,10 +#Tenant,ID,Context,FilterIDs,ActivationInterval,FieldName,Initial,Alias,Append,Weight +cgrates.org,ATTR_1,*rating,FLTR_ACNT_1007,2014-01-14T00:00:00Z,Account,*any,1001,false,10 cgrates.org,ATTR_1,,,,Subject,*any,1001,true, diff --git a/engine/attributes_it_test.go b/engine/attributes_it_test.go index ab3e8a97a..3aa30479e 100644 --- a/engine/attributes_it_test.go +++ b/engine/attributes_it_test.go @@ -30,12 +30,12 @@ func TestExternalAttributeProfileAsAttributeProfile(t *testing.T) { extAttr := &ExternalAttributeProfile{ Tenant: "cgrates.org", ID: "ALS1", + Context: "con1", FilterIDs: []string{"FLTR_ACNT_dan", "FLTR_DST_DE"}, ActivationInterval: &utils.ActivationInterval{ ActivationTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC).Local(), ExpiryTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC).Local(), }, - Context: "con1", Substitute: []*Substitute{ &Substitute{ FieldName: "FL1", @@ -57,12 +57,12 @@ func TestExternalAttributeProfileAsAttributeProfile(t *testing.T) { expected := &AttributeProfile{ Tenant: "cgrates.org", ID: "ALS1", + Context: "con1", FilterIDs: []string{"FLTR_ACNT_dan", "FLTR_DST_DE"}, ActivationInterval: &utils.ActivationInterval{ ActivationTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC).Local(), ExpiryTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC).Local(), }, - Context: "con1", Substitutes: attrMap, Weight: 20, } @@ -85,12 +85,12 @@ func TestNewExternalAttributeProfileFromAttributeProfile(t *testing.T) { attrPrf := &AttributeProfile{ Tenant: "cgrates.org", ID: "ALS1", + Context: "con1", FilterIDs: []string{"FLTR_ACNT_dan", "FLTR_DST_DE"}, ActivationInterval: &utils.ActivationInterval{ ActivationTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC).Local(), ExpiryTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC).Local(), }, - Context: "con1", Substitutes: attrMap, Weight: 20, } @@ -98,12 +98,12 @@ func TestNewExternalAttributeProfileFromAttributeProfile(t *testing.T) { expected := &ExternalAttributeProfile{ Tenant: "cgrates.org", ID: "ALS1", + Context: "con1", FilterIDs: []string{"FLTR_ACNT_dan", "FLTR_DST_DE"}, ActivationInterval: &utils.ActivationInterval{ ActivationTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC).Local(), ExpiryTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC).Local(), }, - Context: "con1", Substitute: []*Substitute{ &Substitute{ FieldName: "FL1", diff --git a/engine/libattributes.go b/engine/libattributes.go index f2e57dbb8..7fc1e2e28 100644 --- a/engine/libattributes.go +++ b/engine/libattributes.go @@ -34,9 +34,9 @@ type Substitute struct { type AttributeProfile struct { Tenant string ID string + Context string // bind this AttributeProfile to specific context FilterIDs []string ActivationInterval *utils.ActivationInterval // Activation interval - Context string // bind this AttributeProfile to specific context Substitutes map[string]map[string]*Substitute // map[FieldName][InitialValue]*Attribute Weight float64 } @@ -56,9 +56,9 @@ func (aps AttributeProfiles) Sort() { type ExternalAttributeProfile struct { Tenant string ID string + Context string // bind this AttributeProfile to specific context FilterIDs []string ActivationInterval *utils.ActivationInterval // Activation interval - Context string // bind this AttributeProfile to specific context Substitute []*Substitute Weight float64 } @@ -67,10 +67,10 @@ func (eap *ExternalAttributeProfile) AsAttributeProfile() *AttributeProfile { alsPrf := &AttributeProfile{ Tenant: eap.Tenant, ID: eap.ID, - Weight: eap.Weight, + Context: eap.Context, FilterIDs: eap.FilterIDs, ActivationInterval: eap.ActivationInterval, - Context: eap.Context, + Weight: eap.Weight, } alsMap := make(map[string]map[string]*Substitute) for _, als := range eap.Substitute { @@ -85,10 +85,10 @@ func NewExternalAttributeProfileFromAttributeProfile(alsPrf *AttributeProfile) * extals := &ExternalAttributeProfile{ Tenant: alsPrf.Tenant, ID: alsPrf.ID, - Weight: alsPrf.Weight, - ActivationInterval: alsPrf.ActivationInterval, Context: alsPrf.Context, + ActivationInterval: alsPrf.ActivationInterval, FilterIDs: alsPrf.FilterIDs, + Weight: alsPrf.Weight, } for key, val := range alsPrf.Substitutes { for key2, val2 := range val { diff --git a/engine/loader_csv_test.go b/engine/loader_csv_test.go index 02834ae7b..92d70f526 100755 --- a/engine/loader_csv_test.go +++ b/engine/loader_csv_test.go @@ -298,8 +298,8 @@ cgrates.org,SPP_1,,,,,supplier1,FLTR_DST_DE,Account2,RPL_3,ResGroup3,Stat2,10,, cgrates.org,SPP_1,,,,,supplier1,,,,ResGroup4,Stat3,10,, ` attributeProfiles = ` -#,Tenant,ID,FilterIDs,ActivationInterval,Context,FieldName,Initial,Alias,Append,Weight -cgrates.org,ALS1,FLTR_1,2014-07-29T15:00:00Z,con1,Field1,Initial1,Alias1,true,20 +#,Tenant,ID,Context,FilterIDs,ActivationInterval,FieldName,Initial,Alias,Append,Weight +cgrates.org,ALS1,con1,FLTR_1,2014-07-29T15:00:00Z,Field1,Initial1,Alias1,true,20 cgrates.org,ALS1,,,,Field2,Initial2,Alias2,false, ` ) diff --git a/engine/model_helpers_test.go b/engine/model_helpers_test.go index 5a0fff3c7..370a647e9 100755 --- a/engine/model_helpers_test.go +++ b/engine/model_helpers_test.go @@ -1065,12 +1065,12 @@ func TestAPItoAttributeProfile(t *testing.T) { TPid: "TP1", Tenant: "cgrates.org", ID: "ALS1", + Context: "con1", FilterIDs: []string{"FLTR_ACNT_dan", "FLTR_DST_DE"}, ActivationInterval: &utils.TPActivationInterval{ ActivationTime: "2014-07-14T14:35:00Z", ExpiryTime: "", }, - Context: "con1", Substitutes: []*utils.TPRequestSubstitute{ &utils.TPRequestSubstitute{ FieldName: "FL1", @@ -1092,11 +1092,11 @@ func TestAPItoAttributeProfile(t *testing.T) { expected := &AttributeProfile{ Tenant: "cgrates.org", ID: "ALS1", + Context: "con1", FilterIDs: []string{"FLTR_ACNT_dan", "FLTR_DST_DE"}, ActivationInterval: &utils.ActivationInterval{ ActivationTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC), }, - Context: "con1", Substitutes: attrMap, Weight: 20, } @@ -1112,12 +1112,12 @@ func TestAPItoModelTPAttribute(t *testing.T) { TPid: "TP1", Tenant: "cgrates.org", ID: "ALS1", + Context: "con1", FilterIDs: []string{"FLTR_ACNT_dan", "FLTR_DST_DE"}, ActivationInterval: &utils.TPActivationInterval{ ActivationTime: "2014-07-14T14:35:00Z", ExpiryTime: "", }, - Context: "con1", Substitutes: []*utils.TPRequestSubstitute{ &utils.TPRequestSubstitute{ FieldName: "FL1", @@ -1133,8 +1133,8 @@ func TestAPItoModelTPAttribute(t *testing.T) { Tpid: "TP1", Tenant: "cgrates.org", ID: "ALS1", - FilterIDs: "FLTR_ACNT_dan;FLTR_DST_DE", Context: "con1", + FilterIDs: "FLTR_ACNT_dan;FLTR_DST_DE", FieldName: "FL1", Initial: "In1", Alias: "Al1", @@ -1155,8 +1155,8 @@ func TestModelAsTPAttribute(t *testing.T) { Tpid: "TP1", Tenant: "cgrates.org", ID: "ALS1", - FilterIDs: "FLTR_ACNT_dan;FLTR_DST_DE", Context: "con1", + FilterIDs: "FLTR_ACNT_dan;FLTR_DST_DE", FieldName: "FL1", Initial: "In1", Alias: "Al1", @@ -1169,12 +1169,12 @@ func TestModelAsTPAttribute(t *testing.T) { TPid: "TP1", Tenant: "cgrates.org", ID: "ALS1", + Context: "con1", FilterIDs: []string{"FLTR_ACNT_dan", "FLTR_DST_DE"}, ActivationInterval: &utils.TPActivationInterval{ ActivationTime: "2014-07-14T14:35:00Z", ExpiryTime: "", }, - Context: "con1", Substitutes: []*utils.TPRequestSubstitute{ &utils.TPRequestSubstitute{ FieldName: "FL1", diff --git a/engine/models.go b/engine/models.go index 8e9ac8a95..dc4c1992e 100755 --- a/engine/models.go +++ b/engine/models.go @@ -546,9 +546,9 @@ type TPAttribute struct { Tpid string Tenant string `index:"0" re:""` ID string `index:"1" re:""` - FilterIDs string `index:"2" re:""` - ActivationInterval string `index:"3" re:""` - Context string `index:"4" re:""` + Context string `index:"2" re:""` + FilterIDs string `index:"3" re:""` + ActivationInterval string `index:"4" re:""` FieldName string `index:"5" re:""` Initial string `index:"6" re:""` Alias string `index:"7" re:""`