1
0
mirror of https://github.com/aclindsa/moneygo.git synced 2024-12-26 23:42:29 -05:00
moneygo/internal/models/prices.go
Aaron Lindsay a357d38eee Store currency/security values/prices using big.Rat natively
This adds 'shadow' types used only by the store/db internal package whch
handle converting these types to their DB-equivalent values. This change
should allow reports to be generated significantly faster since it
allows a large portion of the computation to be shifted to the database
engines.
2017-12-12 19:50:38 -05:00

42 lines
833 B
Go

package models
import (
"encoding/json"
"net/http"
"strings"
"time"
)
type Price struct {
PriceId int64
SecurityId int64
CurrencyId int64
Date time.Time
Value Amount // price of Security in Currency units
RemoteId string // unique ID from source, for detecting duplicates
}
type PriceList struct {
Prices *[]*Price `json:"prices"`
}
func (p *Price) Read(json_str string) error {
dec := json.NewDecoder(strings.NewReader(json_str))
return dec.Decode(p)
}
func (p *Price) Write(w http.ResponseWriter) error {
enc := json.NewEncoder(w)
return enc.Encode(p)
}
func (pl *PriceList) Read(json_str string) error {
dec := json.NewDecoder(strings.NewReader(json_str))
return dec.Decode(pl)
}
func (pl *PriceList) Write(w http.ResponseWriter) error {
enc := json.NewEncoder(w)
return enc.Encode(pl)
}