storj/satellite/console/billinghistoryitem.go

60 lines
2.0 KiB
Go
Raw Normal View History

// Copyright (C) 2019 Storj Labs, Inc.
// See LICENSE for copying information.
package console
import (
"time"
)
// BillingHistoryItem holds all public information about billing history line.
type BillingHistoryItem struct {
ID string `json:"id"`
Description string `json:"description"`
Amount int64 `json:"amount"`
Remaining int64 `json:"remaining"`
Received int64 `json:"received"`
Status string `json:"status"`
Link string `json:"link"`
Start time.Time `json:"start"`
End time.Time `json:"end"`
Type BillingHistoryItemType `json:"type"`
}
// BillingHistoryCursor holds info for billing history
// cursor pagination.
type BillingHistoryCursor struct {
Limit int
// StartingAfter is the last ID of the previous page.
// The next page will start after this ID.
StartingAfter string
// EndingBefore is the id before which a page should end.
EndingBefore string
}
// BillingHistoryPage returns paginated billing history items.
type BillingHistoryPage struct {
Items []BillingHistoryItem `json:"items"`
// Next indicates whether there are more events to retrieve.
Next bool `json:"next"`
// Previous indicates whether there are previous items.
Previous bool `json:"previous"`
}
// BillingHistoryItemType indicates type of billing history item.
type BillingHistoryItemType int
const (
// Invoice is a Stripe invoice billing item.
Invoice BillingHistoryItemType = 0
// Transaction is a Coinpayments transaction billing item.
Transaction BillingHistoryItemType = 1
// Charge is a credit card charge billing item.
Charge BillingHistoryItemType = 2
// Coupon is an entity that adds some funds to Accounts balance for some fixed period.
Coupon BillingHistoryItemType = 3
// DepositBonus is an entity that adds some funds to Accounts balance after deposit with storj coins.
DepositBonus BillingHistoryItemType = 4
)