github.com/mysteriumnetwork/node@v0.0.0-20240516044423-365054f76801/mobile/mysterium/estimator.go (about) 1 /* 2 * Copyright (C) 2021 The "MysteriumNetwork/node" Authors. 3 * 4 * This program is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation, either version 3 of the License, or 7 * (at your option) any later version. 8 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 package mysterium 19 20 import "github.com/mysteriumnetwork/node/consumer/entertainment" 21 22 // Estimates represent estimated entertainment 23 type Estimates struct { 24 VideoMinutes int64 25 MusicMinutes int64 26 BrowsingMinutes int64 27 TrafficMB int64 28 PricePerGB float64 29 PricePerMin float64 30 } 31 32 func newEstimates(e entertainment.Estimates) *Estimates { 33 return &Estimates{ 34 VideoMinutes: int64(e.VideoMinutes), 35 MusicMinutes: int64(e.MusicMinutes), 36 BrowsingMinutes: int64(e.BrowsingMinutes), 37 TrafficMB: int64(e.TrafficMB), 38 PricePerGB: e.PricePerGiB, 39 PricePerMin: e.PricePerMin, 40 } 41 } 42 43 // CalculateEstimates calculates average service times 44 func (mb *MobileNode) CalculateEstimates(amount float64) *Estimates { 45 return newEstimates(mb.entertainmentEstimator.EstimatedEntertainment(amount)) 46 }