case classComponentScratchpad(userId: UUID, componentId: UUID, version: Long = 1L, documentId: UUID, createdAt: DateTime = new DateTime, updatedAt: DateTime = new DateTime) extends Product with Serializable
case classContext(user: User, session: Session, courses: IndexedSeq[Course] = IndexedSeq.empty[Course]) extends Product with Serializable
case classCourse(id: UUID = UUID.random, version: Long = 1L, teacherId: UUID, name: String, color: Color, slug: String, chatEnabled: Boolean = true, projects: Option[IndexedSeq[Project]] = None, createdAt: DateTime = new DateTime, updatedAt: DateTime = new DateTime) extends Product with Serializable
case classCoursePost(teacherId: UUID, name: String, color: Color, slug: String) extends Product with Serializable
case classCoursePut(version: Long, teacherId: Option[UUID], name: Option[String], color: Option[Color], slug: Option[String], chatEnabled: Option[Boolean]) extends Product with Serializable
case classCourseSchedule(id: UUID = UUID.random, version: Long = 1L, courseId: UUID, day: LocalDate, startTime: LocalTime, endTime: LocalTime, description: String, createdAt: DateTime = new DateTime, updatedAt: DateTime = new DateTime) extends Product with Serializable
case classCourseScheduleException(id: UUID = UUID.random, userId: UUID, courseId: UUID, version: Long = 1L, day: LocalDate, startTime: LocalTime, endTime: LocalTime, reason: String, createdAt: DateTime = new DateTime, updatedAt: DateTime = new DateTime) extends Product with Serializable
case classCourseSchedulePost(day: LocalDate, startTime: LocalTime, endTime: LocalTime, description: String) extends Product with Serializable
case classCourseSchedulePut(version: Long, courseId: Option[UUID], day: Option[LocalDate], startTime: Option[LocalTime], endTime: Option[LocalTime], description: Option[String]) extends Product with Serializable
case classJournalEntry(id: UUID = UUID.random, version: Long = 1L, userId: UUID, projectId: UUID, entryType: String, item: String, message: String = "", createdAt: DateTime = new DateTime, updatedAt: DateTime = new DateTime) extends Product with Serializable
case classPart(id: UUID = UUID.random, version: Long = 1L, projectId: UUID, name: String, position: Int = 0, enabled: Boolean = true, tasks: IndexedSeq[Task] = IndexedSeq(), createdAt: DateTime = new DateTime, updatedAt: DateTime = new DateTime) extends Product with Serializable
case classPartPost(projectId: UUID, name: String, position: Int, enabled: Boolean) extends Product with Serializable
case classPartPut(version: Long, projectId: UUID, name: String, position: Int, enabled: Boolean) extends Product with Serializable
case classProject(id: UUID = UUID.random, courseId: UUID, version: Long = 1L, name: String, slug: String, description: String, availability: String = Project.Availability.AnyTime, parts: IndexedSeq[Part], createdAt: DateTime = new DateTime, updatedAt: DateTime = new DateTime) extends Product with Serializable
case classProjectPost(name: String, slug: String, description: String) extends Product with Serializable
case classProjectPut(version: Long, name: String, slug: String, description: String) extends Product with Serializable
case classRole(id: UUID = UUID.random, version: Long = 1L, name: String, createdAt: DateTime = new DateTime, updatedAt: DateTime = new DateTime) extends Product with Serializable
case classTaskFeedback(studentId: UUID, taskId: UUID, version: Long = 1, documentId: UUID, createdAt: DateTime = new DateTime, updatedAt: DateTime = new DateTime) extends Product with Serializable
case classTaskScratchpad(userId: UUID, taskId: UUID, version: Long = 1L, documentId: UUID, createdAt: DateTime = new DateTime, updatedAt: DateTime = new DateTime) extends Product with Serializable
User companion object. Fills the role of input/output mappers in the
layered architecture. This object should handle all interaction with the
technical services layer for Users.
For individual user lookups, this mapper will check the in-memory cache
first, followed by the database.
User companion object. Fills the role of input/output mappers in the layered architecture. This object should handle all interaction with the technical services layer for Users.
For individual user lookups, this mapper will check the in-memory cache first, followed by the database.