diff --git a/core/src/main/java/org/futo/circles/core/model/WorkspaceTask.kt b/core/src/main/java/org/futo/circles/core/model/WorkspaceTask.kt
new file mode 100644
index 0000000000000000000000000000000000000000..949d9dab2c876d84c31d4471cc5a871ac0c27373
--- /dev/null
+++ b/core/src/main/java/org/futo/circles/core/model/WorkspaceTask.kt
@@ -0,0 +1,29 @@
+package org.futo.circles.core.model
+
+import org.futo.circles.core.list.IdEntity
+
+sealed class WorkspaceTask(
+    open val room: CirclesRoom,
+    open val titleResId: Int,
+    open val descriptionResId: Int,
+    open val status: TaskStatus
+) : IdEntity<Int>
+
+data class MandatoryWorkspaceTask(
+    override val room: CirclesRoom,
+    override val titleResId: Int,
+    override val descriptionResId: Int,
+    override val status: TaskStatus = TaskStatus.IDLE
+) : WorkspaceTask(room, titleResId, descriptionResId, status) {
+    override val id: Int = titleResId
+}
+
+data class OptionalWorkspaceTask(
+    override val room: CirclesRoom,
+    override val titleResId: Int,
+    override val descriptionResId: Int,
+    override val status: TaskStatus = TaskStatus.IDLE,
+    val isSelected: Boolean = true
+) : WorkspaceTask(room, titleResId, descriptionResId, status) {
+    override val id: Int = titleResId
+}
\ No newline at end of file