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 }