Constructing a case class, that its constructer values coming by Future.
case class Info(values: Seq[Int], result: Long)
val vs: Future[Seq[Int]] = getValues()
val r: Future[Long] = calcValues(vs)
val info = Info(vs,r)
You can use for comprehension, like below.
val future: Future[Info] = for ( vs <- getValues(); r <- calcValues(vs) ) yield Info(vs, r)
This returns a Future[Info] which you can map over and do your other operations.