2016-08-20 08:39:42 -06:00
|
|
|
package lila.coach
|
|
|
|
|
2017-02-14 08:34:07 -07:00
|
|
|
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],
|
2016-09-01 08:35:21 -06:00
|
|
|
nbReviews: Int,
|
2017-12-29 08:50:43 -07:00
|
|
|
user: Coach.User,
|
2020-04-27 10:31:49 -06:00
|
|
|
languages: List[String],
|
2016-08-21 01:16:41 -06:00
|
|
|
createdAt: DateTime,
|
2017-02-14 08:34:07 -07:00
|
|
|
updatedAt: DateTime
|
|
|
|
) {
|
2016-08-21 01:16:41 -06:00
|
|
|
|
|
|
|
def id = _id
|
|
|
|
|
2017-12-29 08:50:43 -07:00
|
|
|
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 {
|
|
|
|
|
2021-09-10 08:48:40 -06:00
|
|
|
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
|
|
|
|
2021-07-08 13:09:28 -06:00
|
|
|
case class WithUser(coach: Coach, user: lila.user.User) {
|
2021-07-08 13:13:06 -06:00
|
|
|
def isListed = coach.listed.value && user.enabled && user.marks.clean
|
2021-07-08 13:09:28 -06:00
|
|
|
}
|
2016-08-21 01:16:41 -06:00
|
|
|
|
2021-09-10 08:48:40 -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
|
2017-12-29 08:50:43 -07:00
|
|
|
case class User(rating: Int, seenAt: DateTime)
|
2016-08-20 08:39:42 -06:00
|
|
|
}
|