Files
coco 723ce1af5c a
2026-07-03 15:12:48 +08:00

276 lines
8.4 KiB
JSON

{
"formatVersion": 1,
"database": {
"version": 1,
"identityHash": "eca79de30b8fc4f7ce1c27dd669431f2",
"entities": [
{
"tableName": "lecture",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`subject_name` TEXT NOT NULL, `academic_year` INTEGER NOT NULL, `degree` TEXT NOT NULL, `subgroup` INTEGER NOT NULL, `professor_email` TEXT NOT NULL, `room_number` INTEGER NOT NULL, `room_floor` INTEGER NOT NULL, `room_building` TEXT NOT NULL, `start_date` INTEGER NOT NULL, `end_date` INTEGER NOT NULL, PRIMARY KEY(`subject_name`, `academic_year`, `degree`, `subgroup`, `start_date`), FOREIGN KEY(`room_building`) REFERENCES `building`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`subject_name`, `academic_year`, `degree`) REFERENCES `subject`(`name`, `academic_year`, `degree`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`professor_email`) REFERENCES `professor`(`email`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "subjectName",
"columnName": "subject_name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "academicYear",
"columnName": "academic_year",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "degree",
"columnName": "degree",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "subgroup",
"columnName": "subgroup",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "professorEmail",
"columnName": "professor_email",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "roomNumber",
"columnName": "room_number",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "roomFloor",
"columnName": "room_floor",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "roomBuilding",
"columnName": "room_building",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "startDate",
"columnName": "start_date",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "endDate",
"columnName": "end_date",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"subject_name",
"academic_year",
"degree",
"subgroup",
"start_date"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_lecture_academic_year_start_date_subgroup",
"unique": false,
"columnNames": [
"academic_year",
"start_date",
"subgroup"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_lecture_academic_year_start_date_subgroup` ON `${TABLE_NAME}` (`academic_year`, `start_date`, `subgroup`)"
},
{
"name": "index_lecture_professor_email",
"unique": false,
"columnNames": [
"professor_email"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_lecture_professor_email` ON `${TABLE_NAME}` (`professor_email`)"
},
{
"name": "index_lecture_room_building",
"unique": false,
"columnNames": [
"room_building"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_lecture_room_building` ON `${TABLE_NAME}` (`room_building`)"
}
],
"foreignKeys": [
{
"table": "building",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"room_building"
],
"referencedColumns": [
"id"
]
},
{
"table": "subject",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"subject_name",
"academic_year",
"degree"
],
"referencedColumns": [
"name",
"academic_year",
"degree"
]
},
{
"table": "professor",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"professor_email"
],
"referencedColumns": [
"email"
]
}
]
},
{
"tableName": "subject",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`name` TEXT NOT NULL, `academic_year` INTEGER NOT NULL, `degree` TEXT NOT NULL, `type` TEXT NOT NULL, `credits` INTEGER NOT NULL, PRIMARY KEY(`name`, `academic_year`, `degree`))",
"fields": [
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "academicYear",
"columnName": "academic_year",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "degree",
"columnName": "degree",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "credits",
"columnName": "credits",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"name",
"academic_year",
"degree"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "building",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `abbreviation` TEXT NOT NULL, `name` TEXT NOT NULL, `address` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "abbreviation",
"columnName": "abbreviation",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "address",
"columnName": "address",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "professor",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`name` TEXT NOT NULL, `surname` TEXT NOT NULL, `email` TEXT NOT NULL, PRIMARY KEY(`email`))",
"fields": [
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "surname",
"columnName": "surname",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "email",
"columnName": "email",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"email"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
}
],
"views": [],
"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, 'eca79de30b8fc4f7ce1c27dd669431f2')"
]
}
}