You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.9 KiB
71 lines
1.9 KiB
package cdr
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
type ExportLineIndex int
|
|
|
|
var (
|
|
ExportLineSize = 9
|
|
ExportLineTypeCall = "CALL"
|
|
ExportLineTypeText = "TEXT"
|
|
ExportLineTypeData = "DATA"
|
|
ExportLineHeader = []string{
|
|
"Type", "Timestamp", "From", "To", "Units", "Account", "Cost", "Price", "Description",
|
|
}
|
|
)
|
|
|
|
const (
|
|
ExportLineType ExportLineIndex = iota
|
|
ExportLineTimestamp
|
|
ExportLineFrom
|
|
ExportLineTo
|
|
ExportLineUnits
|
|
ExportLineAccount
|
|
ExportLineCost
|
|
ExportLinePrice
|
|
ExportLineDescription
|
|
)
|
|
|
|
func ExportCall(c Call) []string {
|
|
ret := make([]string, ExportLineSize)
|
|
ret[ExportLineType] = ExportLineTypeCall
|
|
ret[ExportLineTimestamp] = c.Time.Format(DateTimeFormat)
|
|
ret[ExportLineFrom] = c.From
|
|
ret[ExportLineTo] = c.To
|
|
ret[ExportLineUnits] = fmt.Sprintf("%.0f", c.Duration.Seconds())
|
|
ret[ExportLineAccount] = c.Account
|
|
ret[ExportLineCost] = fmt.Sprintf("%d", c.Cost)
|
|
ret[ExportLinePrice] = fmt.Sprintf("%d", c.Price)
|
|
ret[ExportLineDescription] = c.Description
|
|
return ret
|
|
}
|
|
|
|
func ExportText(t Text) []string {
|
|
ret := make([]string, ExportLineSize)
|
|
ret[ExportLineType] = ExportLineTypeText
|
|
ret[ExportLineTimestamp] = t.Time.Format(DateTimeFormat)
|
|
ret[ExportLineFrom] = t.From
|
|
ret[ExportLineTo] = t.To
|
|
ret[ExportLineUnits] = "1"
|
|
ret[ExportLineAccount] = t.Account
|
|
ret[ExportLineCost] = fmt.Sprintf("%d", t.Cost)
|
|
ret[ExportLinePrice] = fmt.Sprintf("%d", t.Price)
|
|
ret[ExportLineDescription] = "SMS"
|
|
return ret
|
|
}
|
|
|
|
func ExportData(d Data) []string {
|
|
ret := make([]string, ExportLineSize)
|
|
ret[ExportLineType] = ExportLineTypeData
|
|
ret[ExportLineTimestamp] = d.Time.Format(DateTimeFormat)
|
|
ret[ExportLineFrom] = ""
|
|
ret[ExportLineTo] = ""
|
|
ret[ExportLineUnits] = fmt.Sprintf("%d", d.Kilobytes)
|
|
ret[ExportLineAccount] = d.Account
|
|
ret[ExportLineCost] = fmt.Sprintf("%d", d.PricedLine.Cost)
|
|
ret[ExportLinePrice] = fmt.Sprintf("%d", d.PricedLine.Price)
|
|
ret[ExportLineDescription] = "Data"
|
|
return ret
|
|
}
|
|
|