module Prosper.Account
( Account (..)
, emptyAccount
) where
import Control.Applicative ((<$>), (<*>))
import Control.Monad (mzero)
import Data.Aeson
import Prosper.Money
data Account = Account
{ availableCash :: !Money
, pendingInvestments :: !Money
, totPrincipalRecvdOnActiveNotes :: !Money
, totalInvestedOnActiveNotes :: !Money
, outstandingPrincipalActiveNotes :: !Money
,
totalAccountValue :: !Money
, pendingInvestmentsSecondaryMkt :: !Money
, pendingQuickInvestOrders :: !Money
} deriving (Show, Eq)
emptyAccount :: Account
emptyAccount = Account 0 0 0 0 0 0 0 0
instance FromJSON Account where
parseJSON (Object v) = Account
<$> v .: "AvailableCashBalance"
<*> v .: "PendingInvestmentsPrimaryMkt"
<*> v .: "TotalPrincipalReceivedOnActiveNotes"
<*> v .: "TotalAmountInvestedOnActiveNotes"
<*> v .: "OutstandingPrincipalOnActiveNotes"
<*> v .: "TotalAccountValue"
<*> v .: "PendingInvestmentsSecondaryMkt"
<*> v .: "PendingQuickInvestOrders"
parseJSON _ = mzero