From 834081e557aee95ea89952763a1cc2e318f90958 Mon Sep 17 00:00:00 2001 From: Faraphel Date: Thu, 16 May 2024 22:15:29 +0200 Subject: [PATCH] [WIP] - Updated database --- .../tasks_valider/database/TaskDatabase.kt | 17 +++---- .../database/api/entities/GroupApi.kt | 2 +- .../database/api/entities/GroupStudentApi.kt | 2 +- .../database/api/entities/StudentApi.kt | 2 +- .../database/api/entities/TaskApi.kt | 2 +- .../database/api/entities/TaskGroupApi.kt | 2 +- .../database/api/entities/TeacherApi.kt | 2 +- .../tasks_valider/database/dao/GroupDao.kt | 2 +- .../database/dao/GroupStudentDao.kt | 2 +- .../tasks_valider/database/dao/StudentDao.kt | 2 +- .../tasks_valider/database/dao/TaskDao.kt | 2 +- .../database/dao/TaskGroupDao.kt | 2 +- .../tasks_valider/database/dao/TeacherDao.kt | 2 +- .../database/entities/ClassEntity.kt | 12 +++++ .../database/entities/SessionEntity.kt | 27 ++++++++++++ .../database/entities/StudentEntity.kt | 13 +++--- .../database/entities/SubjectEntity.kt | 12 +++++ .../database/entities/TaskEntity.kt | 17 ++++++- .../database/entities/TeacherEntity.kt | 13 +++--- .../database/entities/TeamEntity.kt | 26 +++++++++++ .../database/entities/ValidationEntity.kt | 44 +++++++++++++++++++ .../entities/{ => _old}/GroupEntity.kt | 2 +- .../entities/{ => _old}/GroupStudentEntity.kt | 2 +- .../entities/{ => _old}/PersonEntity.kt | 2 +- .../database/entities/_old/StudentEntity.kt | 12 +++++ .../database/entities/_old/TaskEntity.kt | 13 ++++++ .../entities/{ => _old}/TaskGroupEntity.kt | 2 +- .../database/entities/_old/TeacherEntity.kt | 12 +++++ .../tasks_valider/ui/screen/task/screen.kt | 2 +- .../tasks_valider/ui/widgets/task/Group.kt | 2 +- .../tasks_valider/ui/widgets/task/Task.kt | 2 +- .../ui/widgets/task/TaskGroup.kt | 2 +- 32 files changed, 215 insertions(+), 43 deletions(-) create mode 100644 app/src/main/java/com/faraphel/tasks_valider/database/entities/ClassEntity.kt create mode 100644 app/src/main/java/com/faraphel/tasks_valider/database/entities/SessionEntity.kt create mode 100644 app/src/main/java/com/faraphel/tasks_valider/database/entities/SubjectEntity.kt create mode 100644 app/src/main/java/com/faraphel/tasks_valider/database/entities/TeamEntity.kt create mode 100644 app/src/main/java/com/faraphel/tasks_valider/database/entities/ValidationEntity.kt rename app/src/main/java/com/faraphel/tasks_valider/database/entities/{ => _old}/GroupEntity.kt (87%) rename app/src/main/java/com/faraphel/tasks_valider/database/entities/{ => _old}/GroupStudentEntity.kt (93%) rename app/src/main/java/com/faraphel/tasks_valider/database/entities/{ => _old}/PersonEntity.kt (87%) create mode 100644 app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/StudentEntity.kt create mode 100644 app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/TaskEntity.kt rename app/src/main/java/com/faraphel/tasks_valider/database/entities/{ => _old}/TaskGroupEntity.kt (95%) create mode 100644 app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/TeacherEntity.kt diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/TaskDatabase.kt b/app/src/main/java/com/faraphel/tasks_valider/database/TaskDatabase.kt index bd59fe0..f439a9d 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/TaskDatabase.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/TaskDatabase.kt @@ -3,10 +3,6 @@ package com.faraphel.tasks_valider.database import androidx.room.Database import androidx.room.RoomDatabase import androidx.room.TypeConverters -import com.faraphel.tasks_valider.connectivity.task.session.TaskPermission -import com.faraphel.tasks_valider.connectivity.task.session.TaskSession -import com.faraphel.tasks_valider.database.api.entities.base.BaseApi -import com.faraphel.tasks_valider.database.api.entities.* import com.faraphel.tasks_valider.database.converters.InstantConverter import com.faraphel.tasks_valider.database.dao.GroupDao import com.faraphel.tasks_valider.database.dao.GroupStudentDao @@ -14,13 +10,12 @@ import com.faraphel.tasks_valider.database.dao.StudentDao import com.faraphel.tasks_valider.database.dao.TaskDao import com.faraphel.tasks_valider.database.dao.TaskGroupDao import com.faraphel.tasks_valider.database.dao.TeacherDao -import com.faraphel.tasks_valider.database.entities.GroupEntity -import com.faraphel.tasks_valider.database.entities.GroupStudentEntity -import com.faraphel.tasks_valider.database.entities.StudentEntity -import com.faraphel.tasks_valider.database.entities.TaskEntity -import com.faraphel.tasks_valider.database.entities.TaskGroupEntity -import com.faraphel.tasks_valider.database.entities.TeacherEntity -import fi.iki.elonen.NanoHTTPD +import com.faraphel.tasks_valider.database.entities._old.GroupEntity +import com.faraphel.tasks_valider.database.entities._old.GroupStudentEntity +import com.faraphel.tasks_valider.database.entities._old.StudentEntity +import com.faraphel.tasks_valider.database.entities._old.TaskEntity +import com.faraphel.tasks_valider.database.entities._old.TaskGroupEntity +import com.faraphel.tasks_valider.database.entities._old.TeacherEntity /** diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/GroupApi.kt b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/GroupApi.kt index e345ddf..0f780f6 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/GroupApi.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/GroupApi.kt @@ -2,6 +2,6 @@ package com.faraphel.tasks_valider.database.api.entities import com.faraphel.tasks_valider.database.api.entities.base.BaseJsonApi import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.GroupEntity +import com.faraphel.tasks_valider.database.entities._old.GroupEntity class GroupApi(dao: BaseDao) : BaseJsonApi(dao) diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/GroupStudentApi.kt b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/GroupStudentApi.kt index 069733f..2427a35 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/GroupStudentApi.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/GroupStudentApi.kt @@ -2,6 +2,6 @@ package com.faraphel.tasks_valider.database.api.entities import com.faraphel.tasks_valider.database.api.entities.base.BaseJsonApi import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.GroupStudentEntity +import com.faraphel.tasks_valider.database.entities._old.GroupStudentEntity class GroupStudentApi(dao: BaseDao) : BaseJsonApi(dao) diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/StudentApi.kt b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/StudentApi.kt index a380111..01f0cbd 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/StudentApi.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/StudentApi.kt @@ -2,6 +2,6 @@ package com.faraphel.tasks_valider.database.api.entities import com.faraphel.tasks_valider.database.api.entities.base.BaseJsonApi import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.StudentEntity +import com.faraphel.tasks_valider.database.entities._old.StudentEntity class StudentApi(dao: BaseDao) : BaseJsonApi(dao) diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TaskApi.kt b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TaskApi.kt index 376f240..42eee83 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TaskApi.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TaskApi.kt @@ -2,6 +2,6 @@ package com.faraphel.tasks_valider.database.api.entities import com.faraphel.tasks_valider.database.api.entities.base.BaseJsonApi import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.TaskEntity +import com.faraphel.tasks_valider.database.entities._old.TaskEntity class TaskApi(dao: BaseDao) : BaseJsonApi(dao) \ No newline at end of file diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TaskGroupApi.kt b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TaskGroupApi.kt index f1c9f63..02119cf 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TaskGroupApi.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TaskGroupApi.kt @@ -2,6 +2,6 @@ package com.faraphel.tasks_valider.database.api.entities import com.faraphel.tasks_valider.database.api.entities.base.BaseJsonApi import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.TaskGroupEntity +import com.faraphel.tasks_valider.database.entities._old.TaskGroupEntity class TaskGroupApi(dao: BaseDao) : BaseJsonApi(dao) \ No newline at end of file diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TeacherApi.kt b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TeacherApi.kt index f412fa3..6c65cf4 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TeacherApi.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/api/entities/TeacherApi.kt @@ -2,6 +2,6 @@ package com.faraphel.tasks_valider.database.api.entities import com.faraphel.tasks_valider.database.api.entities.base.BaseJsonApi import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.TeacherEntity +import com.faraphel.tasks_valider.database.entities._old.TeacherEntity class TeacherApi(dao: BaseDao) : BaseJsonApi(dao) diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/dao/GroupDao.kt b/app/src/main/java/com/faraphel/tasks_valider/database/dao/GroupDao.kt index e53764c..c482bb3 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/dao/GroupDao.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/dao/GroupDao.kt @@ -4,7 +4,7 @@ import androidx.room.Dao import androidx.room.Query import androidx.room.RewriteQueriesToDropUnusedColumns import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.GroupEntity +import com.faraphel.tasks_valider.database.entities._old.GroupEntity @Dao diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/dao/GroupStudentDao.kt b/app/src/main/java/com/faraphel/tasks_valider/database/dao/GroupStudentDao.kt index 6f86ea6..85b558b 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/dao/GroupStudentDao.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/dao/GroupStudentDao.kt @@ -3,7 +3,7 @@ package com.faraphel.tasks_valider.database.dao import androidx.room.Dao import androidx.room.Query import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.GroupStudentEntity +import com.faraphel.tasks_valider.database.entities._old.GroupStudentEntity @Dao diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/dao/StudentDao.kt b/app/src/main/java/com/faraphel/tasks_valider/database/dao/StudentDao.kt index d1451eb..6ec9459 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/dao/StudentDao.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/dao/StudentDao.kt @@ -4,7 +4,7 @@ import androidx.room.Dao import androidx.room.Query import androidx.room.RewriteQueriesToDropUnusedColumns import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.StudentEntity +import com.faraphel.tasks_valider.database.entities._old.StudentEntity @Dao diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/dao/TaskDao.kt b/app/src/main/java/com/faraphel/tasks_valider/database/dao/TaskDao.kt index 33df321..c0e327d 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/dao/TaskDao.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/dao/TaskDao.kt @@ -4,7 +4,7 @@ import androidx.room.Dao import androidx.room.Query import androidx.room.RewriteQueriesToDropUnusedColumns import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.TaskEntity +import com.faraphel.tasks_valider.database.entities._old.TaskEntity @Dao diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/dao/TaskGroupDao.kt b/app/src/main/java/com/faraphel/tasks_valider/database/dao/TaskGroupDao.kt index 8b2bea6..f29b27c 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/dao/TaskGroupDao.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/dao/TaskGroupDao.kt @@ -3,7 +3,7 @@ package com.faraphel.tasks_valider.database.dao import androidx.room.Dao import androidx.room.Query import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.TaskGroupEntity +import com.faraphel.tasks_valider.database.entities._old.TaskGroupEntity @Dao diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/dao/TeacherDao.kt b/app/src/main/java/com/faraphel/tasks_valider/database/dao/TeacherDao.kt index 3acba4d..39cba2a 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/dao/TeacherDao.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/dao/TeacherDao.kt @@ -3,7 +3,7 @@ package com.faraphel.tasks_valider.database.dao import androidx.room.Dao import androidx.room.Query import com.faraphel.tasks_valider.database.dao.base.BaseDao -import com.faraphel.tasks_valider.database.entities.TeacherEntity +import com.faraphel.tasks_valider.database.entities._old.TeacherEntity @Dao diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/ClassEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/ClassEntity.kt new file mode 100644 index 0000000..253262e --- /dev/null +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/ClassEntity.kt @@ -0,0 +1,12 @@ +package com.faraphel.tasks_valider.database.entities + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey +import com.faraphel.tasks_valider.database.entities.base.BaseEntity + +@Entity(tableName = "classes") +data class ClassEntity ( + @ColumnInfo("id") @PrimaryKey(autoGenerate = true) val id: Long = 0, + @ColumnInfo("name") val name: String, +) : BaseEntity() diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/SessionEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/SessionEntity.kt new file mode 100644 index 0000000..1e12419 --- /dev/null +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/SessionEntity.kt @@ -0,0 +1,27 @@ +package com.faraphel.tasks_valider.database.entities + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.PrimaryKey +import com.faraphel.tasks_valider.database.entities.base.BaseEntity +import java.time.Instant + +@Entity( + tableName = "sessions", + foreignKeys = [ + ForeignKey( + entity = ClassEntity::class, + parentColumns = ["id"], + childColumns = ["class_id"], + onDelete = ForeignKey.CASCADE + ), + ] +) +data class SessionEntity ( + @ColumnInfo("id") @PrimaryKey(autoGenerate = true) val id: Long = 0, + @ColumnInfo("name") val name: String? = null, + @ColumnInfo("start") val start: Instant, + + @ColumnInfo("class_id") val classId: Long? = null, +) : BaseEntity() diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/StudentEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/StudentEntity.kt index fdfd648..45ed156 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/entities/StudentEntity.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/StudentEntity.kt @@ -3,10 +3,13 @@ package com.faraphel.tasks_valider.database.entities import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey +import com.faraphel.tasks_valider.database.entities.base.BaseEntity +import java.util.* @Entity(tableName = "students") -class StudentEntity( - @ColumnInfo("id") @PrimaryKey(autoGenerate = true) override val id: Long = 0, - @ColumnInfo("first_name") override val firstName: String, - @ColumnInfo("last_name") override val lastName: String -) : PersonEntity(id, firstName, lastName) +data class StudentEntity ( + @ColumnInfo("id") @PrimaryKey(autoGenerate = true) val id: Long = 0, + @ColumnInfo("first_name") val firstName: String, + @ColumnInfo("last_name") val lastName: String, + @ColumnInfo("card_id") val cardId: UUID, +) : BaseEntity() diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/SubjectEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/SubjectEntity.kt new file mode 100644 index 0000000..bd4122d --- /dev/null +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/SubjectEntity.kt @@ -0,0 +1,12 @@ +package com.faraphel.tasks_valider.database.entities + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey +import com.faraphel.tasks_valider.database.entities.base.BaseEntity + +@Entity(tableName = "subjects") +data class SubjectEntity ( + @ColumnInfo("id") @PrimaryKey(autoGenerate = true) val id: Long = 0, + @ColumnInfo("name") val name: String, +) : BaseEntity() diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/TaskEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/TaskEntity.kt index 7d04402..42b9bf6 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/entities/TaskEntity.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/TaskEntity.kt @@ -2,12 +2,25 @@ package com.faraphel.tasks_valider.database.entities import androidx.room.ColumnInfo import androidx.room.Entity +import androidx.room.ForeignKey import androidx.room.PrimaryKey import com.faraphel.tasks_valider.database.entities.base.BaseEntity -@Entity(tableName = "tasks") +@Entity( + tableName = "tasks", + foreignKeys = [ + ForeignKey( + entity = SubjectEntity::class, + parentColumns = ["id"], + childColumns = ["subject_id"], + onDelete = ForeignKey.CASCADE + ), + ] +) data class TaskEntity ( @ColumnInfo("id") @PrimaryKey(autoGenerate = true) val id: Long = 0, @ColumnInfo("title") val title: String, - @ColumnInfo("description") val description: String, + @ColumnInfo("description") val description: String? = null, + + @ColumnInfo("subject_id") val subjectId: Long, ) : BaseEntity() diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/TeacherEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/TeacherEntity.kt index c244edc..cc3512d 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/entities/TeacherEntity.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/TeacherEntity.kt @@ -3,10 +3,13 @@ package com.faraphel.tasks_valider.database.entities import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey +import com.faraphel.tasks_valider.database.entities.base.BaseEntity + +// TODO(Faraphel): is this class really required ? @Entity(tableName = "teachers") -class TeacherEntity( - @ColumnInfo("id") @PrimaryKey(autoGenerate = true) override val id: Long = 0, - @ColumnInfo("first_name") override val firstName: String, - @ColumnInfo("last_name") override val lastName: String -) : PersonEntity(id, firstName, lastName) +data class TeacherEntity ( + @ColumnInfo("id") @PrimaryKey(autoGenerate = true) val id: Long = 0, + @ColumnInfo("first_name") val firstName: String, + @ColumnInfo("last_name") val lastName: String, +) : BaseEntity() diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/TeamEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/TeamEntity.kt new file mode 100644 index 0000000..bbdbdf6 --- /dev/null +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/TeamEntity.kt @@ -0,0 +1,26 @@ +package com.faraphel.tasks_valider.database.entities + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.PrimaryKey +import com.faraphel.tasks_valider.database.entities.base.BaseEntity + + +@Entity( + tableName = "teams", + foreignKeys = [ + ForeignKey( + entity = TeamEntity::class, + parentColumns = ["id"], + childColumns = ["team_id"], + onDelete = ForeignKey.CASCADE + ), + ] +) +data class TeamEntity ( + @ColumnInfo("id") @PrimaryKey(autoGenerate = true) val id: Long = 0, + @ColumnInfo("name") val name: String? = null, + + @ColumnInfo("team_id") val teamId: Long? = null, +) : BaseEntity() diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/ValidationEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/ValidationEntity.kt new file mode 100644 index 0000000..2e5f3f4 --- /dev/null +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/ValidationEntity.kt @@ -0,0 +1,44 @@ +package com.faraphel.tasks_valider.database.entities + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.PrimaryKey +import com.faraphel.tasks_valider.database.entities.base.BaseEntity +import java.time.Instant + +@Entity( + tableName = "validations", + primaryKeys = [ + "teacher_id", + "task_id", + "student_id", + ], + foreignKeys = [ + ForeignKey( + entity = TeacherEntity::class, + parentColumns = ["id"], + childColumns = ["teacher_id"], + onDelete = ForeignKey.CASCADE + ), + ForeignKey( + entity = TaskEntity::class, + parentColumns = ["id"], + childColumns = ["task_id"], + onDelete = ForeignKey.CASCADE + ), + ForeignKey( + entity = StudentEntity::class, + parentColumns = ["id"], + childColumns = ["student_id"], + onDelete = ForeignKey.CASCADE + ), + ] +) +data class ValidationEntity ( + @ColumnInfo("date") val date: Instant, + + @ColumnInfo("teacher_id") val teacherId: Long, + @ColumnInfo("task_id") val taskId: Long, + @ColumnInfo("student_id") val studentId: Long, +) : BaseEntity() diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/GroupEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/GroupEntity.kt similarity index 87% rename from app/src/main/java/com/faraphel/tasks_valider/database/entities/GroupEntity.kt rename to app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/GroupEntity.kt index 81913df..1caf2b0 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/entities/GroupEntity.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/GroupEntity.kt @@ -1,4 +1,4 @@ -package com.faraphel.tasks_valider.database.entities +package com.faraphel.tasks_valider.database.entities._old import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/GroupStudentEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/GroupStudentEntity.kt similarity index 93% rename from app/src/main/java/com/faraphel/tasks_valider/database/entities/GroupStudentEntity.kt rename to app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/GroupStudentEntity.kt index ba003c8..5cfcae3 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/entities/GroupStudentEntity.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/GroupStudentEntity.kt @@ -1,4 +1,4 @@ -package com.faraphel.tasks_valider.database.entities +package com.faraphel.tasks_valider.database.entities._old import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/PersonEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/PersonEntity.kt similarity index 87% rename from app/src/main/java/com/faraphel/tasks_valider/database/entities/PersonEntity.kt rename to app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/PersonEntity.kt index 469c9d2..29c523c 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/entities/PersonEntity.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/PersonEntity.kt @@ -1,4 +1,4 @@ -package com.faraphel.tasks_valider.database.entities +package com.faraphel.tasks_valider.database.entities._old import java.util.Locale import com.faraphel.tasks_valider.database.entities.base.BaseEntity diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/StudentEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/StudentEntity.kt new file mode 100644 index 0000000..bddac4c --- /dev/null +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/StudentEntity.kt @@ -0,0 +1,12 @@ +package com.faraphel.tasks_valider.database.entities._old + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity(tableName = "students") +class StudentEntity( + @ColumnInfo("id") @PrimaryKey(autoGenerate = true) override val id: Long = 0, + @ColumnInfo("first_name") override val firstName: String, + @ColumnInfo("last_name") override val lastName: String +) : PersonEntity(id, firstName, lastName) diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/TaskEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/TaskEntity.kt new file mode 100644 index 0000000..a64c3fa --- /dev/null +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/TaskEntity.kt @@ -0,0 +1,13 @@ +package com.faraphel.tasks_valider.database.entities._old + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey +import com.faraphel.tasks_valider.database.entities.base.BaseEntity + +@Entity(tableName = "tasks") +data class TaskEntity ( + @ColumnInfo("id") @PrimaryKey(autoGenerate = true) val id: Long = 0, + @ColumnInfo("title") val title: String, + @ColumnInfo("description") val description: String, +) : BaseEntity() diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/TaskGroupEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/TaskGroupEntity.kt similarity index 95% rename from app/src/main/java/com/faraphel/tasks_valider/database/entities/TaskGroupEntity.kt rename to app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/TaskGroupEntity.kt index 006a6a0..fa56012 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/database/entities/TaskGroupEntity.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/TaskGroupEntity.kt @@ -1,4 +1,4 @@ -package com.faraphel.tasks_valider.database.entities +package com.faraphel.tasks_valider.database.entities._old import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/TeacherEntity.kt b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/TeacherEntity.kt new file mode 100644 index 0000000..e7e730f --- /dev/null +++ b/app/src/main/java/com/faraphel/tasks_valider/database/entities/_old/TeacherEntity.kt @@ -0,0 +1,12 @@ +package com.faraphel.tasks_valider.database.entities._old + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity(tableName = "teachers") +class TeacherEntity( + @ColumnInfo("id") @PrimaryKey(autoGenerate = true) override val id: Long = 0, + @ColumnInfo("first_name") override val firstName: String, + @ColumnInfo("last_name") override val lastName: String +) : PersonEntity(id, firstName, lastName) diff --git a/app/src/main/java/com/faraphel/tasks_valider/ui/screen/task/screen.kt b/app/src/main/java/com/faraphel/tasks_valider/ui/screen/task/screen.kt index b517118..47183b6 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/ui/screen/task/screen.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/ui/screen/task/screen.kt @@ -8,7 +8,7 @@ import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import com.faraphel.tasks_valider.connectivity.task.TaskClient -import com.faraphel.tasks_valider.database.entities.TaskGroupEntity +import com.faraphel.tasks_valider.database.entities._old.TaskGroupEntity import com.google.gson.Gson import com.google.gson.reflect.TypeToken diff --git a/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/Group.kt b/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/Group.kt index fb35f98..50c8e81 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/Group.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/Group.kt @@ -3,7 +3,7 @@ package com.faraphel.tasks_valider.ui.widgets.task import androidx.compose.foundation.layout.Column import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import com.faraphel.tasks_valider.database.entities.GroupEntity +import com.faraphel.tasks_valider.database.entities._old.GroupEntity @Composable fun WidgetGroup(group: GroupEntity) { diff --git a/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/Task.kt b/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/Task.kt index 6ed1293..b0a85f6 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/Task.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/Task.kt @@ -3,7 +3,7 @@ package com.faraphel.tasks_valider.ui.widgets.task import androidx.compose.foundation.layout.Column import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import com.faraphel.tasks_valider.database.entities.TaskEntity +import com.faraphel.tasks_valider.database.entities._old.TaskEntity @Composable fun WidgetTask(task: TaskEntity) { diff --git a/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/TaskGroup.kt b/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/TaskGroup.kt index d14bb27..bdd7439 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/TaskGroup.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/ui/widgets/task/TaskGroup.kt @@ -12,7 +12,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.faraphel.tasks_valider.database.TaskDatabase -import com.faraphel.tasks_valider.database.entities.TaskGroupEntity +import com.faraphel.tasks_valider.database.entities._old.TaskGroupEntity @Composable