-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRacoDatabase.kt
More file actions
68 lines (61 loc) · 2.21 KB
/
RacoDatabase.kt
File metadata and controls
68 lines (61 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.yara.raco.database
import android.content.Context
import androidx.room.AutoMigration
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import com.yara.raco.database.evaluation.EvaluationDAO
import com.yara.raco.database.event.EventDAO
import com.yara.raco.database.exam.ExamDAO
import com.yara.raco.database.file.FileDAO
import com.yara.raco.database.grade.GradeDAO
import com.yara.raco.database.notice.NoticeDAO
import com.yara.raco.database.schedule.ScheduleDAO
import com.yara.raco.database.subject.SubjectDAO
import com.yara.raco.model.evaluation.Evaluation
import com.yara.raco.model.event.Event
import com.yara.raco.model.exam.Exam
import com.yara.raco.model.files.File
import com.yara.raco.model.grade.Grade
import com.yara.raco.model.notices.Notice
import com.yara.raco.model.schedule.Schedule
import com.yara.raco.model.subject.Subject
@Database(
entities = [Subject::class, Notice::class, File::class, Schedule::class, Grade::class, Evaluation::class, Event::class, Exam::class],
version = 8,
autoMigrations = [
AutoMigration(from = 5, to = 6),
AutoMigration(from = 6, to = 7),
AutoMigration(from = 7, to = 8)
]
)
abstract class RacoDatabase : RoomDatabase() {
abstract val subjectDAO: SubjectDAO
abstract val noticeDAO: NoticeDAO
abstract val fileDAO: FileDAO
abstract val scheduleDAO: ScheduleDAO
abstract val evaluationDAO: EvaluationDAO
abstract val gradeDAO: GradeDAO
abstract val eventDAO: EventDAO
abstract val examDAO: ExamDAO
companion object {
@Volatile
private var INSTANCE: RacoDatabase? = null
fun getInstance(context: Context): RacoDatabase {
synchronized(this) {
var instance = INSTANCE
if (instance == null) {
instance = Room.databaseBuilder(
context.applicationContext,
RacoDatabase::class.java,
"raco.db"
)
.fallbackToDestructiveMigration(false)
.build()
INSTANCE = instance
}
return instance
}
}
}
}