lila/modules/coach/src/main/Coach.scala

56 lines
1.3 KiB
Scala
Raw Permalink Normal View History

2016-08-20 08:39:42 -06:00
package lila.coach
import org.joda.time.{ DateTime, Days }
2016-08-20 08:39:42 -06:00
2021-09-08 01:26:04 -06:00
import lila.memo.PicfitImage
2016-08-20 08:39:42 -06:00
case class Coach(
2016-08-21 01:16:41 -06:00
_id: Coach.Id, // user ID
2016-09-01 12:02:08 -06:00
listed: Coach.Listed,
2016-08-21 01:16:41 -06:00
available: Coach.Available,
2016-08-22 04:55:55 -06:00
profile: CoachProfile,
2021-09-08 01:26:04 -06:00
picture: Option[PicfitImage.Id],
nbReviews: Int,
user: Coach.User,
2020-04-27 10:31:49 -06:00
languages: List[String],
2016-08-21 01:16:41 -06:00
createdAt: DateTime,
updatedAt: DateTime
) {
2016-08-21 01:16:41 -06:00
def id = _id
def is(user: lila.user.User) = id.value == user.id
2016-08-22 08:47:50 -06:00
2021-09-08 01:26:04 -06:00
def hasPicture = picture.isDefined
2016-08-28 06:30:02 -06:00
2016-11-02 16:17:07 -06:00
def daysOld = Days.daysBetween(createdAt, DateTime.now).getDays
2016-08-21 01:16:41 -06:00
}
2016-08-20 08:39:42 -06:00
object Coach {
val imageSize = 350
2020-05-05 22:11:15 -06:00
def make(user: lila.user.User) =
Coach(
_id = Id(user.id),
listed = Listed(false),
available = Available(true),
profile = CoachProfile(),
2021-09-08 01:26:04 -06:00
picture = None,
2020-05-05 22:11:15 -06:00
nbReviews = 0,
user = User(user.perfs.bestStandardRating, user.seenAt | user.createdAt),
languages = user.lang.toList,
createdAt = DateTime.now,
updatedAt = DateTime.now
)
2016-08-22 04:55:55 -06:00
case class WithUser(coach: Coach, user: lila.user.User) {
def isListed = coach.listed.value && user.enabled && user.marks.clean
}
2016-08-21 01:16:41 -06:00
case class Id(value: String) extends AnyVal with StringValue
case class Listed(value: Boolean) extends AnyVal
case class Available(value: Boolean) extends AnyVal
case class User(rating: Int, seenAt: DateTime)
2016-08-20 08:39:42 -06:00
}