package com.eddsteel.posts.leastpower package services import model._ import scala.concurrent.Future trait UserServiceComponent { def userService: UserService } trait UserService { def getById(id: ID): Future[Option[User]] } trait GiftServiceComponent { def giftService: GiftService } trait GiftService { def order(userId: ID, favoriteThing: String): Future[GiftService.Response] } object GiftService { type Response = (String, Option[ID]) }