storj/multinode/payouts/payouts.go
Qweder93 f2812d76cd multinode/payouts: satellite period/allTime summaries added
payout summaries for specific satellite period/allTime added

Change-Id: I144138304f01f23d5c4b10931988eaaced656aaf
2021-05-14 18:49:31 +00:00

44 lines
1.1 KiB
Go

// Copyright (C) 2021 Storj Labs, Inc.
// See LICENSE for copying information.
package payouts
import (
"storj.io/common/storj"
)
// SatelliteSummary contains satellite id and earned amount.
type SatelliteSummary struct {
SatelliteID storj.NodeID `json:"satelliteID"`
Earned int64 `json:"earned"`
}
// NodeSummary contains node's payout information.
type NodeSummary struct {
NodeID storj.NodeID `json:"nodeId"`
NodeName string `json:"nodeName"`
Held int64 `json:"held"`
Paid int64 `json:"paid"`
}
// Summary contains payouts page data.
type Summary struct {
TotalEarned int64 `json:"totalEarned"`
TotalHeld int64 `json:"totalHeld"`
TotalPaid int64 `json:"totalPaid"`
NodeSummary []NodeSummary `json:"nodeSummary"`
}
// Add appends node payout data to summary.
func (summary *Summary) Add(held, paid int64, id storj.NodeID, name string) {
summary.TotalPaid += paid
summary.TotalHeld += held
summary.TotalEarned += paid + held
summary.NodeSummary = append(summary.NodeSummary, NodeSummary{
NodeID: id,
Held: held,
Paid: paid,
NodeName: name,
})
}