diff --git a/cmd/cgr-loader/budgets.go b/cmd/cgr-loader/budgets.go index 3874b7f81..f300ea028 100644 --- a/cmd/cgr-loader/budgets.go +++ b/cmd/cgr-loader/budgets.go @@ -19,24 +19,20 @@ package main import ( "encoding/csv" + "github.com/cgrates/cgrates/timespans" "log" "os" ) var ( - volumeDiscounts = make(map[string][]string) - volumeRates = make(map[string][]string) - inboundBonuses = make(map[string][]string) - outboundBonuses = make(map[string][]string) - recurrentDebits = make(map[string][]string) - recurrentTopups = make(map[string][]string) - balanceProfiles = make(map[string][]string) + primaryBalanceActions []*timespans.Action + destinatioBalanceActions []*timespans.Action ) -func loadVolumeDicounts() { - fp, err := os.Open(*volumediscountsFn) +func loadPrimaryBalanceActions() { + fp, err := os.Open(*primaryBalanceActionsFn) if err != nil { - log.Printf("Could not open volume discounts file: %v", err) + log.Printf("Could not open primary balance actions file: %v", err) return } defer fp.Close() @@ -48,15 +44,15 @@ func loadVolumeDicounts() { // skip header line continue } - volumeDiscounts[tag] = append(volumeDiscounts[tag], record[1:]...) - log.Print(tag, volumeDiscounts[tag]) + //primaryBalanceActions = append(primaryBalanceActions, record[1:]...) + log.Print(tag, primaryBalanceActions) } } -func loadVolumeRates() { - fp, err := os.Open(*volumeratesFn) +func loadDestinationBalanceActions() { + fp, err := os.Open(*destinationBalanceActionsFn) if err != nil { - log.Printf("Could not open volume rates file: %v", err) + log.Printf("Could not open destination balance actions file: %v", err) return } defer fp.Close() @@ -68,107 +64,7 @@ func loadVolumeRates() { // skip header line continue } - volumeRates[tag] = append(volumeRates[tag], record[1:]...) - log.Print(tag, volumeRates[tag]) - } -} - -func loadInboundBonuses() { - fp, err := os.Open(*inboundbonusesFn) - if err != nil { - log.Printf("Could not open inbound bonueses file: %v", err) - return - } - defer fp.Close() - csvReader := csv.NewReader(fp) - csvReader.Comma = sep - for record, err := csvReader.Read(); err == nil; record, err = csvReader.Read() { - tag := record[0] - if tag == "Tag" { - // skip header line - continue - } - inboundBonuses[tag] = append(inboundBonuses[tag], record[1:]...) - log.Print(tag, inboundBonuses[tag]) - } -} - -func loadOutboundBonuses() { - fp, err := os.Open(*inboundbonusesFn) - if err != nil { - log.Printf("Could not open outbound bonueses file: %v", err) - return - } - defer fp.Close() - csvReader := csv.NewReader(fp) - csvReader.Comma = sep - for record, err := csvReader.Read(); err == nil; record, err = csvReader.Read() { - tag := record[0] - if tag == "Tag" { - // skip header line - continue - } - outboundBonuses[tag] = append(outboundBonuses[tag], record[1:]...) - log.Print(tag, outboundBonuses[tag]) - } -} - -func loadRecurrentDebits() { - fp, err := os.Open(*recurrentdebitsFn) - if err != nil { - log.Printf("Could not open recurent debits file: %v", err) - return - } - defer fp.Close() - csvReader := csv.NewReader(fp) - csvReader.Comma = sep - for record, err := csvReader.Read(); err == nil; record, err = csvReader.Read() { - tag := record[0] - if tag == "Tag" { - // skip header line - continue - } - recurrentDebits[tag] = append(recurrentDebits[tag], record[1:]...) - log.Print(tag, recurrentDebits[tag]) - } -} - -func loadRecurrentTopups() { - fp, err := os.Open(*recurrenttopupsFn) - if err != nil { - log.Printf("Could not open recurent topups file: %v", err) - return - } - defer fp.Close() - csvReader := csv.NewReader(fp) - csvReader.Comma = sep - for record, err := csvReader.Read(); err == nil; record, err = csvReader.Read() { - tag := record[0] - if tag == "Tag" { - // skip header line - continue - } - recurrentTopups[tag] = append(recurrentTopups[tag], record[1:]...) - log.Print(tag, recurrentTopups[tag]) - } -} - -func loadBalanceProfiles() { - fp, err := os.Open(*balanceprofilesFn) - if err != nil { - log.Printf("Could not open balance profiles file: %v", err) - return - } - defer fp.Close() - csvReader := csv.NewReader(fp) - csvReader.Comma = sep - for record, err := csvReader.Read(); err == nil; record, err = csvReader.Read() { - tag := record[0] - if tag == "Account" { - // skip header line - continue - } - balanceProfiles[tag] = append(balanceProfiles[tag], record...) - log.Print(tag, balanceProfiles[tag]) + //destinatioBalanceActions = append(destinatioBalanceActions, record[1:]...) + log.Print(tag, destinatioBalanceActions) } } diff --git a/cmd/cgr-loader/cgr-loader.go b/cmd/cgr-loader/cgr-loader.go index 992886c91..6314cd8b2 100644 --- a/cmd/cgr-loader/cgr-loader.go +++ b/cmd/cgr-loader/cgr-loader.go @@ -24,27 +24,22 @@ import ( ) var ( - separator = flag.String("separator", ",", "Default field separator") - redisserver = flag.String("redisserver", "tcp:127.0.0.1:6379", "redis server address (tcp:127.0.0.1:6379)") - redisdb = flag.Int("rdb", 10, "redis database number (10)") - redispass = flag.String("pass", "", "redis database password") - flush = flag.Bool("flush", false, "Flush the database before importing") - monthsFn = flag.String("month", "Months.csv", "Months file") - monthdaysFn = flag.String("monthdays", "MonthDays.csv", "Month days file") - weekdaysFn = flag.String("weekdays", "WeekDays.csv", "Week days file") - destinationsFn = flag.String("destinations", "Destinations.csv", "Destinations file") - ratesFn = flag.String("rates", "Rates.csv", "Rates file") - timingsFn = flag.String("timings", "Timings.csv", "Timings file") - ratestimingsFn = flag.String("ratestimings", "RatesTimings.csv", "Rates timings file") - ratingprofilesFn = flag.String("ratingprofiles", "RatingProfiles.csv", "Rating profiles file") - volumediscountsFn = flag.String("volumediscounts", "VolumeDiscounts.csv", "Volume discounts file") - volumeratesFn = flag.String("volumerates", "VolumeRates.csv", "Volume rates file") - inboundbonusesFn = flag.String("inboundbonuses", "InboundBonuses.csv", "Inbound bonuses file") - outboundbonusesFn = flag.String("outboundbonuses", "OutboundBonuses.csv", "Outound bonuses file") - recurrentdebitsFn = flag.String("recurrentdebits", "RecurrentDebits.csv", "Recurent debits file") - recurrenttopupsFn = flag.String("recurrenttopups", "RecurrentTopups.csv", "Recurent topups file") - balanceprofilesFn = flag.String("balanceprofiles", "BalanceProfiles.csv", "Balance profiles file") - sep rune + separator = flag.String("separator", ",", "Default field separator") + redisserver = flag.String("redisserver", "tcp:127.0.0.1:6379", "redis server address (tcp:127.0.0.1:6379)") + redisdb = flag.Int("rdb", 10, "redis database number (10)") + redispass = flag.String("pass", "", "redis database password") + flush = flag.Bool("flush", false, "Flush the database before importing") + monthsFn = flag.String("month", "Months.csv", "Months file") + monthdaysFn = flag.String("monthdays", "MonthDays.csv", "Month days file") + weekdaysFn = flag.String("weekdays", "WeekDays.csv", "Week days file") + destinationsFn = flag.String("destinations", "Destinations.csv", "Destinations file") + ratesFn = flag.String("rates", "Rates.csv", "Rates file") + timingsFn = flag.String("timings", "Timings.csv", "Timings file") + ratestimingsFn = flag.String("ratestimings", "RatesTimings.csv", "Rates timings file") + ratingprofilesFn = flag.String("ratingprofiles", "RatingProfiles.csv", "Rating profiles file") + primaryBalanceActionsFn = flag.String("primaryBalanceActions", "PrimaryBalanceActions.csv", "Primary balance actions file") + destinationBalanceActionsFn = flag.String("destinationBalanceActions", "DestinationBalanceActions.csv", "Destination balance actions file") + sep rune ) func writeToDatabase() { @@ -76,12 +71,7 @@ func main() { loadTimings() loadRatesTimings() loadRatingProfiles() - loadVolumeDicounts() - loadVolumeRates() - loadInboundBonuses() - loadOutboundBonuses() - loadRecurrentDebits() - loadRecurrentTopups() - loadBalanceProfiles() + loadPrimaryBalanceActions() + loadDestinationBalanceActions() writeToDatabase() } diff --git a/data/BalanceProfiles.csv b/data/BalanceProfiles.csv deleted file mode 100644 index ca6f0934e..000000000 --- a/data/BalanceProfiles.csv +++ /dev/null @@ -1,3 +0,0 @@ -Account,AccountType,MonetaryBalance,SMSBalance,TrafficBalance,RecurrentTopupsTag,RecurrentMonthsTag,RecurrentMonthDaysTag,RecurrentWeekDaysTag,RecurrentStartTime,RecurrentClears -rif,postpaid,10,50,100,STARTER_PACK,ALL,20th,ALL,00:00:00,1 -danb,prepaid,10,50,500,STARTER_PACK,ALL,20th,ALL,00:00:00,1 diff --git a/data/DestinationBalanceActions.csv b/data/DestinationBalanceActions.csv new file mode 100644 index 000000000..45751eca5 --- /dev/null +++ b/data/DestinationBalanceActions.csv @@ -0,0 +1,4 @@ +TimingTag,Action,Tenant,Account,Direction,DestinationTag,Units,PriceType,PriceValue,Weight +WEEKLY_SAME_TIME,TOPUP_RESET,CUSTOMER_1,rif,OUT,GERMANY,1000,PRECENT,10,10 +WEEKLY_SAME_TIME,TOPUP_RESET,CUSTOMER_1,rif,OUT,GERMANY_O2,100,ABSOLUTE,0,10 +TRIGGERED,TOPUP_ADD,CUSTOMER_1,rif,OUT,GERMANY_O2,50,THRESHOLD,300,10 \ No newline at end of file diff --git a/data/InboundBonuses.csv b/data/InboundBonuses.csv deleted file mode 100644 index dc9060fb3..000000000 --- a/data/InboundBonuses.csv +++ /dev/null @@ -1,3 +0,0 @@ -Tag,TOR,InboundUnits,MonetaryUnits,SMSUnits,TrafficUnits -STARTER_BONUSES,0,60,0.01,0,0 -STARTER_BONUSES,100,1,0.01,0,0 diff --git a/data/OutboundBonuses.csv b/data/OutboundBonuses.csv deleted file mode 100644 index 039a68d2d..000000000 --- a/data/OutboundBonuses.csv +++ /dev/null @@ -1,3 +0,0 @@ -Tag,TOR,OutboundUnits,DestinationsTag,MonetaryUnits,SMSUnits,TrafficUnits -STARTER_BONUSES,0,60,GERMANY,0.01,0,0 -STARTER_BONUSES,100,1,GERMANY,0.01,0,0 diff --git a/data/PrimaryBalanceActions.csv b/data/PrimaryBalanceActions.csv new file mode 100644 index 000000000..99e51cdb7 --- /dev/null +++ b/data/PrimaryBalanceActions.csv @@ -0,0 +1,6 @@ +TimingTag,Action,Tenant,Account,Direction,BalanceTag,Units +WEEKLY_SAME_TIME,TOPUP_RESET,CUSTOMER_1,rif,OUT,MONETARY,10 +WEEKLY_SAME_TIME,TOPUP_RESET,CUSTOMER_1,rif,OUT,SMS,100 +WEEKLY_SAME_TIME,TOPUP_RESET,CUSTOMER_1,rif,OUT,INTERNET,1000 +ONE_TIME_RUN,POSTPAID_RESET,CUSTOMER_1,dan,OUT,MONETARY,10 +FIRST_DAY_OF_MONTH,DEBIT,CUSTOMER_1,dan,OUT,MONETARY,5 \ No newline at end of file diff --git a/data/RecurrentDebits.csv b/data/RecurrentDebits.csv deleted file mode 100644 index 668206f4d..000000000 --- a/data/RecurrentDebits.csv +++ /dev/null @@ -1,2 +0,0 @@ -Tag,MonetaryUnits,SMSUnits,TrafficUnits -DEBIT_5,5,0,0 diff --git a/data/RecurrentTopups.csv b/data/RecurrentTopups.csv deleted file mode 100644 index 5b4ba50ba..000000000 --- a/data/RecurrentTopups.csv +++ /dev/null @@ -1,2 +0,0 @@ -Tag,RecurrentDebitsTag,MonetaryBalance,SMSBalance,TrafficBalance,VolumeRatesTag,VolumeDiscountsTag,InboundBonusesTag,OutboundBonusesTag -STARTER_PACK,DEBIT_5,2,50,100,GERMANY_100_LANDLINE_MINUTES,UPTO_2000_GERMANY_10PERC,STARTER_BONUSES,STARTER_BONUSES diff --git a/data/VolumeDiscounts.csv b/data/VolumeDiscounts.csv deleted file mode 100644 index 25d8b011f..000000000 --- a/data/VolumeDiscounts.csv +++ /dev/null @@ -1,2 +0,0 @@ -Tag,TOR,DestinationsTag,VolumeUnits,Discount,Weight -UPTO_2000_GERMANY_10PERC,0,GERMANY,2000,10,10 diff --git a/data/VolumeRates.csv b/data/VolumeRates.csv deleted file mode 100644 index 179045e1d..000000000 --- a/data/VolumeRates.csv +++ /dev/null @@ -1,2 +0,0 @@ -Tag,TOR,DestinationsTag,VolumeUnits,Price,Weight -GERMANY_100_LANDLINE_MINUTES,0,GERMANY,100,0,10