{ "formatVersion": 1, "database": { "version": 4, "identityHash": "38abab3f8c5b39625b6a4de9d58968ca", "entities": [ { "tableName": "groups", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `faculty` TEXT NOT NULL, `lastSyncedAt` INTEGER NOT NULL, PRIMARY KEY(`id`))", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "TEXT", "notNull": true }, { "fieldPath": "name", "columnName": "name", "affinity": "TEXT", "notNull": true }, { "fieldPath": "faculty", "columnName": "faculty", "affinity": "TEXT", "notNull": true }, { "fieldPath": "lastSyncedAt", "columnName": "lastSyncedAt", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "id" ] } }, { "tableName": "group_periods", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `groupId` TEXT NOT NULL, `season` TEXT NOT NULL, `weekStart` INTEGER NOT NULL, `weekEnd` INTEGER NOT NULL, FOREIGN KEY(`groupId`) REFERENCES `groups`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "groupId", "columnName": "groupId", "affinity": "TEXT", "notNull": true }, { "fieldPath": "season", "columnName": "season", "affinity": "TEXT", "notNull": true }, { "fieldPath": "weekStart", "columnName": "weekStart", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "weekEnd", "columnName": "weekEnd", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_group_periods_groupId", "unique": false, "columnNames": [ "groupId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_group_periods_groupId` ON `${TABLE_NAME}` (`groupId`)" } ], "foreignKeys": [ { "table": "groups", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "groupId" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "schedules", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `groupId` TEXT NOT NULL, `season` TEXT NOT NULL, `weekStart` INTEGER NOT NULL, `weekEnd` INTEGER NOT NULL, `lastSyncedAt` INTEGER NOT NULL, FOREIGN KEY(`groupId`) REFERENCES `groups`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "groupId", "columnName": "groupId", "affinity": "TEXT", "notNull": true }, { "fieldPath": "season", "columnName": "season", "affinity": "TEXT", "notNull": true }, { "fieldPath": "weekStart", "columnName": "weekStart", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "weekEnd", "columnName": "weekEnd", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "lastSyncedAt", "columnName": "lastSyncedAt", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_schedules_groupId", "unique": false, "columnNames": [ "groupId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_schedules_groupId` ON `${TABLE_NAME}` (`groupId`)" }, { "name": "index_schedules_groupId_season_weekStart", "unique": true, "columnNames": [ "groupId", "season", "weekStart" ], "orders": [], "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_schedules_groupId_season_weekStart` ON `${TABLE_NAME}` (`groupId`, `season`, `weekStart`)" } ], "foreignKeys": [ { "table": "groups", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "groupId" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "days", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `scheduleId` INTEGER NOT NULL, `date` INTEGER NOT NULL, FOREIGN KEY(`scheduleId`) REFERENCES `schedules`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "scheduleId", "columnName": "scheduleId", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "date", "columnName": "date", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_days_scheduleId", "unique": false, "columnNames": [ "scheduleId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_days_scheduleId` ON `${TABLE_NAME}` (`scheduleId`)" }, { "name": "index_days_date", "unique": false, "columnNames": [ "date" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_days_date` ON `${TABLE_NAME}` (`date`)" } ], "foreignKeys": [ { "table": "schedules", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "scheduleId" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "lessons", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `dayId` INTEGER NOT NULL, `date` INTEGER NOT NULL, `slotIndex` INTEGER NOT NULL, `start` INTEGER NOT NULL, `end` INTEGER NOT NULL, `lessonIndex` INTEGER NOT NULL, `raw` TEXT NOT NULL, `room` TEXT, `groupName` TEXT, `subgroup` TEXT, `subject` TEXT, `type` TEXT NOT NULL, `teacher` TEXT, FOREIGN KEY(`dayId`) REFERENCES `days`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "dayId", "columnName": "dayId", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "date", "columnName": "date", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "slotIndex", "columnName": "slotIndex", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "start", "columnName": "start", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "end", "columnName": "end", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "lessonIndex", "columnName": "lessonIndex", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "raw", "columnName": "raw", "affinity": "TEXT", "notNull": true }, { "fieldPath": "room", "columnName": "room", "affinity": "TEXT" }, { "fieldPath": "groupName", "columnName": "groupName", "affinity": "TEXT" }, { "fieldPath": "subgroup", "columnName": "subgroup", "affinity": "TEXT" }, { "fieldPath": "subject", "columnName": "subject", "affinity": "TEXT" }, { "fieldPath": "type", "columnName": "type", "affinity": "TEXT", "notNull": true }, { "fieldPath": "teacher", "columnName": "teacher", "affinity": "TEXT" } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_lessons_dayId", "unique": false, "columnNames": [ "dayId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_lessons_dayId` ON `${TABLE_NAME}` (`dayId`)" }, { "name": "index_lessons_date", "unique": false, "columnNames": [ "date" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_lessons_date` ON `${TABLE_NAME}` (`date`)" }, { "name": "index_lessons_subject", "unique": false, "columnNames": [ "subject" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_lessons_subject` ON `${TABLE_NAME}` (`subject`)" }, { "name": "index_lessons_room", "unique": false, "columnNames": [ "room" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_lessons_room` ON `${TABLE_NAME}` (`room`)" } ], "foreignKeys": [ { "table": "days", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "dayId" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "preferences", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `value` TEXT NOT NULL, PRIMARY KEY(`key`))", "fields": [ { "fieldPath": "key", "columnName": "key", "affinity": "TEXT", "notNull": true }, { "fieldPath": "value", "columnName": "value", "affinity": "TEXT", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "key" ] } }, { "tableName": "departments", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`departmentId` TEXT NOT NULL, `name` TEXT NOT NULL, `faculty` TEXT NOT NULL, `lastSyncedAt` INTEGER NOT NULL, PRIMARY KEY(`departmentId`))", "fields": [ { "fieldPath": "departmentId", "columnName": "departmentId", "affinity": "TEXT", "notNull": true }, { "fieldPath": "name", "columnName": "name", "affinity": "TEXT", "notNull": true }, { "fieldPath": "faculty", "columnName": "faculty", "affinity": "TEXT", "notNull": true }, { "fieldPath": "lastSyncedAt", "columnName": "lastSyncedAt", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "departmentId" ] } }, { "tableName": "department_periods", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `departmentId` TEXT NOT NULL, `season` TEXT NOT NULL, `weekStart` INTEGER NOT NULL, `weekEnd` INTEGER NOT NULL, FOREIGN KEY(`departmentId`) REFERENCES `departments`(`departmentId`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "departmentId", "columnName": "departmentId", "affinity": "TEXT", "notNull": true }, { "fieldPath": "season", "columnName": "season", "affinity": "TEXT", "notNull": true }, { "fieldPath": "weekStart", "columnName": "weekStart", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "weekEnd", "columnName": "weekEnd", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_department_periods_departmentId", "unique": false, "columnNames": [ "departmentId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_department_periods_departmentId` ON `${TABLE_NAME}` (`departmentId`)" } ], "foreignKeys": [ { "table": "departments", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "departmentId" ], "referencedColumns": [ "departmentId" ] } ] }, { "tableName": "teacher_schedules", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `departmentId` TEXT NOT NULL, `season` TEXT NOT NULL, `weekStart` INTEGER NOT NULL, `weekEnd` INTEGER NOT NULL, `lastSyncedAt` INTEGER NOT NULL, FOREIGN KEY(`departmentId`) REFERENCES `departments`(`departmentId`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "departmentId", "columnName": "departmentId", "affinity": "TEXT", "notNull": true }, { "fieldPath": "season", "columnName": "season", "affinity": "TEXT", "notNull": true }, { "fieldPath": "weekStart", "columnName": "weekStart", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "weekEnd", "columnName": "weekEnd", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "lastSyncedAt", "columnName": "lastSyncedAt", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_teacher_schedules_departmentId", "unique": false, "columnNames": [ "departmentId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_teacher_schedules_departmentId` ON `${TABLE_NAME}` (`departmentId`)" }, { "name": "index_teacher_schedules_departmentId_season_weekStart", "unique": true, "columnNames": [ "departmentId", "season", "weekStart" ], "orders": [], "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_teacher_schedules_departmentId_season_weekStart` ON `${TABLE_NAME}` (`departmentId`, `season`, `weekStart`)" } ], "foreignKeys": [ { "table": "departments", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "departmentId" ], "referencedColumns": [ "departmentId" ] } ] }, { "tableName": "teacher_days", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `scheduleId` INTEGER NOT NULL, `date` INTEGER NOT NULL, FOREIGN KEY(`scheduleId`) REFERENCES `teacher_schedules`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "scheduleId", "columnName": "scheduleId", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "date", "columnName": "date", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_teacher_days_scheduleId", "unique": false, "columnNames": [ "scheduleId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_teacher_days_scheduleId` ON `${TABLE_NAME}` (`scheduleId`)" }, { "name": "index_teacher_days_date", "unique": false, "columnNames": [ "date" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_teacher_days_date` ON `${TABLE_NAME}` (`date`)" } ], "foreignKeys": [ { "table": "teacher_schedules", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "scheduleId" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "teacher_lessons", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `dayId` INTEGER NOT NULL, `date` INTEGER NOT NULL, `slotIndex` INTEGER NOT NULL, `start` INTEGER NOT NULL, `end` INTEGER NOT NULL, `lessonIndex` INTEGER NOT NULL, `raw` TEXT NOT NULL, `room` TEXT, `groupName` TEXT, `subgroup` TEXT, `subject` TEXT, `type` TEXT NOT NULL, `teacher` TEXT NOT NULL, FOREIGN KEY(`dayId`) REFERENCES `teacher_days`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "dayId", "columnName": "dayId", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "date", "columnName": "date", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "slotIndex", "columnName": "slotIndex", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "start", "columnName": "start", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "end", "columnName": "end", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "lessonIndex", "columnName": "lessonIndex", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "raw", "columnName": "raw", "affinity": "TEXT", "notNull": true }, { "fieldPath": "room", "columnName": "room", "affinity": "TEXT" }, { "fieldPath": "groupName", "columnName": "groupName", "affinity": "TEXT" }, { "fieldPath": "subgroup", "columnName": "subgroup", "affinity": "TEXT" }, { "fieldPath": "subject", "columnName": "subject", "affinity": "TEXT" }, { "fieldPath": "type", "columnName": "type", "affinity": "TEXT", "notNull": true }, { "fieldPath": "teacher", "columnName": "teacher", "affinity": "TEXT", "notNull": true } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] }, "indices": [ { "name": "index_teacher_lessons_dayId", "unique": false, "columnNames": [ "dayId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_teacher_lessons_dayId` ON `${TABLE_NAME}` (`dayId`)" }, { "name": "index_teacher_lessons_teacher", "unique": false, "columnNames": [ "teacher" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_teacher_lessons_teacher` ON `${TABLE_NAME}` (`teacher`)" }, { "name": "index_teacher_lessons_room", "unique": false, "columnNames": [ "room" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_teacher_lessons_room` ON `${TABLE_NAME}` (`room`)" }, { "name": "index_teacher_lessons_subject", "unique": false, "columnNames": [ "subject" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_teacher_lessons_subject` ON `${TABLE_NAME}` (`subject`)" } ], "foreignKeys": [ { "table": "teacher_days", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "dayId" ], "referencedColumns": [ "id" ] } ] } ], "setupQueries": [ "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '38abab3f8c5b39625b6a4de9d58968ca')" ] } }