Documentation
¶
Index ¶
- Constants
- Variables
- func AgeInDays(periodStarts, periodEnds time.Time) int
- func Calculate(reportTime time.Time, deal Deal, payments []Payment) (interest, outstanding decimal.Decimal64p2, err error)
- func IsKnownFormula(formula Formula) bool
- type Calculator
- type Credit
- type Deal
- type Formula
- type Payment
- type RatePeriodInDays
- type SimplePercentCalculator
Constants ¶
View Source
const ( FormulaSimple = "simple" FormulaCompound = "compound" )
View Source
const ( RatePeriodDaily = 1 RatePeriodWeekly = 7 RatePeriodMonthly = 30 RatePeriodYearly = 360 )
Variables ¶
View Source
var (
ErrFormulaIsNotSet = errors.New("interest formula is not set")
)
View Source
var KnownFormulas = []Formula{ FormulaSimple, FormulaCompound, }
Functions ¶
func IsKnownFormula ¶
Types ¶
type Calculator ¶
type Credit ¶
type Credit interface { Formula() Formula RatePeriod() RatePeriodInDays RatePercent() decimal.Decimal64p2 MinimumPeriod() int GracePeriod() int }
type Deal ¶
type Deal interface { Credit Time() time.Time LentAmount() decimal.Decimal64p2 }
func NewDeal ¶
func NewDeal(formula Formula, time time.Time, lentAmount, ratePercent decimal.Decimal64p2, ratePeriod RatePeriodInDays, minimumPeriod, gracePeriod int) Deal
type Payment ¶
type Payment interface { Time() time.Time Amount() decimal.Decimal64p2 }
func NewPayment ¶
func NewPayment(time time.Time, amount decimal.Decimal64p2) Payment
type RatePeriodInDays ¶
type RatePeriodInDays int
type SimplePercentCalculator ¶
type SimplePercentCalculator struct { }
func (SimplePercentCalculator) Calculate ¶
func (SimplePercentCalculator) Calculate(reportTime time.Time, deal Deal, payments []Payment) (interest, outstanding decimal.Decimal64p2, err error)
func (SimplePercentCalculator) Formula ¶
func (SimplePercentCalculator) Formula() Formula
Click to show internal directories.
Click to hide internal directories.