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])
}