package common import ( "time" "cloud.o-forge.io/core/oc-lib/models/common/pricing" "cloud.o-forge.io/core/oc-lib/tools" ) func GetPlannerNearestStart(start time.Time, planned map[tools.DataType][]pricing.PricedItemITF, request *tools.APIRequest) float64 { near := float64(10000000000) // set a high value for _, items := range planned { // loop through the planned items for _, priced := range items { // loop through the priced items if priced.GetLocationStart() == nil { // if the start is nil, continue // skip the iteration } newS := priced.GetLocationStart() // get the start if newS.Sub(start).Seconds() < near { // if the difference between the start and the new start is less than the nearest start near = newS.Sub(start).Seconds() } } } return near } func GetPlannerLongestTime(end *time.Time, planned map[tools.DataType][]pricing.PricedItemITF, request *tools.APIRequest) float64 { if end == nil { return -1 } longestTime := float64(0) for _, priced := range planned[tools.PROCESSING_RESOURCE] { if priced.GetLocationEnd() == nil { continue } newS := priced.GetLocationEnd() if longestTime < newS.Sub(*end).Seconds() { longestTime = newS.Sub(*end).Seconds() } // get the nearest start from start var } return longestTime }