Documentation
¶
Index ¶
- func ApplyPrecision(transaction *Transaction) int64
- func ApplyRate(transaction *Transaction) float64
- func CalculateDistributions(totalAmount float64, distributions []Distribution) (map[string]float64, error)
- func GenerateUUIDWithSuffix(module string) string
- func UpdateBalances(transaction *Transaction, source, destination *Balance) error
- type Account
- type AlertCondition
- type Balance
- func (balance *Balance) CommitInflightCredit(transaction *Transaction)
- func (balance *Balance) CommitInflightDebit(transaction *Transaction)
- func (balance *Balance) RollbackInflightCredit(amount int64)
- func (balance *Balance) RollbackInflightDebit(amount int64)
- func (_ *Balance) ToSchema() *api.CollectionSchema
- type BalanceFilter
- type BalanceMonitor
- type BalanceTracker
- type Distribution
- type Event
- type EventMapper
- type Identity
- type Ledger
- type LedgerFilter
- type Transaction
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyPrecision ¶
func ApplyPrecision(transaction *Transaction) int64
func ApplyRate ¶
func ApplyRate(transaction *Transaction) float64
func CalculateDistributions ¶
func CalculateDistributions(totalAmount float64, distributions []Distribution) (map[string]float64, error)
CalculateDistributions calculates and returns the amount for each identifier (source or destination) based on its distribution.
func GenerateUUIDWithSuffix ¶
func UpdateBalances ¶
func UpdateBalances(transaction *Transaction, source, destination *Balance) error
Types ¶
type Account ¶
type Account struct { AccountID string `json:"account_id"` Name string `json:"name" form:"name"` Number string `json:"number" form:"number"` BankName string `json:"bank_name"` Currency string `json:"currency"` BalanceID string `json:"balance_id" ` IdentityID string `json:"identity_id" form:"identity_id"` LedgerID string `json:"ledger_id"` Ledger *Ledger `json:"ledger"` Balance *Balance `json:"balance"` Identity *Identity `json:"identity"` CreatedAt time.Time `json:"created_at"` MetaData map[string]interface{} `json:"meta_data"` }
type AlertCondition ¶
type Balance ¶
type Balance struct { ID int64 `json:"-"` Balance int64 `json:"balance"` Version int64 `json:"version"` InflightBalance int64 `json:"inflight_balance"` CreditBalance int64 `json:"credit_balance"` InflightCreditBalance int64 `json:"inflight_credit_balance"` DebitBalance int64 `json:"debit_balance"` InflightDebitBalance int64 `json:"inflight_debit_balance"` CurrencyMultiplier float64 `json:"precision"` LedgerID string `json:"ledger_id"` IdentityID string `json:"identity_id"` BalanceID string `json:"balance_id"` Indicator string `json:"indicator"` Currency string `json:"currency"` Identity *Identity `json:"identity,omitempty"` Ledger *Ledger `json:"ledger,omitempty"` CreatedAt time.Time `json:"created_at"` InflighExpiresAt time.Time `json:"inflight_expires_at"` MetaData map[string]interface{} `json:"meta_data"` }
func (*Balance) CommitInflightCredit ¶
func (balance *Balance) CommitInflightCredit(transaction *Transaction)
func (*Balance) CommitInflightDebit ¶
func (balance *Balance) CommitInflightDebit(transaction *Transaction)
func (*Balance) RollbackInflightCredit ¶
RollbackInflightCredit decreases the InflightCreditBalance by the specified amount
func (*Balance) RollbackInflightDebit ¶
RollbackInflightDebit decreases the InflightDebitBalance by the specified amount
func (*Balance) ToSchema ¶
func (_ *Balance) ToSchema() *api.CollectionSchema
type BalanceFilter ¶
type BalanceFilter struct { ID int64 `json:"id"` BalanceRange string `json:"balance_range"` CreditBalanceRange string `json:"credit_balance_range"` DebitBalanceRange string `json:"debit_balance_range"` Currency string `json:"currency"` LedgerID string `json:"ledger_id"` From time.Time `json:"from"` To time.Time `json:"to"` }
type BalanceMonitor ¶
type BalanceMonitor struct { MonitorID string `json:"monitor_id"` BalanceID string `json:"balance_id"` Description string `json:"description,omitempty"` CallBackURL string `json:"-"` CreatedAt time.Time `json:"created_at"` Condition AlertCondition `json:"condition"` }
func (*BalanceMonitor) CheckCondition ¶
func (bm *BalanceMonitor) CheckCondition(b *Balance) bool
type BalanceTracker ¶
type Distribution ¶
type EventMapper ¶
type Identity ¶
type Identity struct { IdentityID string `json:"identity_id" form:"identity_id"` IdentityType string `json:"identity_type" form:"identity_type"` OrganizationName string `json:"organization_name" form:"organization_name"` Category string `json:"category" form:"category"` FirstName string `json:"first_name" form:"first_name"` LastName string `json:"last_name" form:"last_name"` OtherNames string `json:"other_names" form:"other_names"` Gender string `json:"gender" form:"gender"` EmailAddress string `json:"email_address" form:"email_address"` PhoneNumber string `json:"phone_number" form:"phone_number"` Nationality string `json:"nationality" form:"nationality"` Street string `json:"street" form:"street"` Country string `json:"country" form:"country"` State string `json:"state" form:"state"` PostCode string `json:"post_code" form:"postCode"` City string `json:"city" form:"city"` DOB time.Time `json:"dob" form:"dob"` CreatedAt time.Time `json:"created_at" form:"createdAt"` MetaData map[string]interface{} `json:"meta_data" form:"metaData"` }
type Ledger ¶
type Ledger struct { ID int64 `json:"-"` LedgerID string `json:"ledger_id"` Name string `json:"name"` CreatedAt time.Time `json:"created_at"` MetaData map[string]interface{} `json:"meta_data"` }
func (*Ledger) ToSchema ¶
func (_ *Ledger) ToSchema() *api.CollectionSchema
type LedgerFilter ¶
type Transaction ¶
type Transaction struct { ID int64 `json:"-"` PreciseAmount int64 `json:"precise_amount,omitempty"` Amount float64 `json:"amount"` Rate float64 `json:"rate"` Precision float64 `json:"precision"` TransactionID string `json:"transaction_id"` ParentTransaction string `json:"parent_transaction"` Source string `json:"source,omitempty"` Destination string `json:"destination,omitempty"` Reference string `json:"reference"` Currency string `json:"currency"` Description string `json:"description,omitempty"` Status string `json:"status"` Hash string `json:"hash"` AllowOverdraft bool `json:"allow_overdraft"` Inflight bool `json:"inflight"` SkipBalanceUpdate bool `json:"-"` GroupIds []string `json:"-"` Sources []Distribution `json:"sources,omitempty"` Destinations []Distribution `json:"destinations,omitempty"` CreatedAt time.Time `json:"created_at"` ScheduledFor time.Time `json:"scheduled_for,omitempty"` InflightExpiryDate time.Time `json:"inflight_expiry_date,omitempty"` MetaData map[string]interface{} `json:"meta_data,omitempty"` }
func (*Transaction) HashTxn ¶
func (transaction *Transaction) HashTxn() string
func (*Transaction) SplitTransaction ¶
func (transaction *Transaction) SplitTransaction() ([]*Transaction, error)
func (*Transaction) ToJSON ¶
func (transaction *Transaction) ToJSON() ([]byte, error)
func (*Transaction) ToSchema ¶
func (_ *Transaction) ToSchema() *api.CollectionSchema
Click to show internal directories.
Click to hide internal directories.