diff --git a/drizzle/0000_harsh_warlock.sql b/drizzle/0000_harsh_warlock.sql new file mode 100644 index 0000000..938635e --- /dev/null +++ b/drizzle/0000_harsh_warlock.sql @@ -0,0 +1,53 @@ +CREATE TABLE `sessions` ( + `token` varchar(255) NOT NULL, + `userId` int NOT NULL, + `expires` bigint NOT NULL, + CONSTRAINT `sessions_token` PRIMARY KEY(`token`) +); +--> statement-breakpoint +CREATE TABLE `survey_access_table` ( + `id` int AUTO_INCREMENT NOT NULL, + `surveyId` int NOT NULL, + `recepientEmail` text NOT NULL, + `accessToken` varchar(255) NOT NULL, + CONSTRAINT `survey_access_table_id` PRIMARY KEY(`id`) +); +--> statement-breakpoint +CREATE TABLE `survey_answers_table` ( + `participantId` int NOT NULL, + `skillId` int NOT NULL, + `rating` int NOT NULL, + CONSTRAINT `survey_answers_table_participantId_skillId_pk` PRIMARY KEY(`participantId`,`skillId`) +); +--> statement-breakpoint +CREATE TABLE `survey_skills_table` ( + `id` int AUTO_INCREMENT NOT NULL, + `surveyId` int NOT NULL, + `title` text NOT NULL, + `description` text, + CONSTRAINT `survey_skills_table_id` PRIMARY KEY(`id`) +); +--> statement-breakpoint +CREATE TABLE `surveys_table` ( + `id` int AUTO_INCREMENT NOT NULL, + `title` text NOT NULL, + `description` text, + `owner` int NOT NULL, + CONSTRAINT `surveys_table_id` PRIMARY KEY(`id`) +); +--> statement-breakpoint +CREATE TABLE `users_table` ( + `id` int AUTO_INCREMENT NOT NULL, + `email` text NOT NULL, + `password_hash` text NOT NULL, + CONSTRAINT `users_table_id` PRIMARY KEY(`id`), + CONSTRAINT `users_table_email_unique` UNIQUE(`email`) +); +--> statement-breakpoint +ALTER TABLE `sessions` ADD CONSTRAINT `sessions_userId_users_table_id_fk` FOREIGN KEY (`userId`) REFERENCES `users_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `survey_access_table` ADD CONSTRAINT `survey_access_table_surveyId_surveys_table_id_fk` FOREIGN KEY (`surveyId`) REFERENCES `surveys_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `survey_answers_table` ADD CONSTRAINT `survey_answers_table_participantId_survey_access_table_id_fk` FOREIGN KEY (`participantId`) REFERENCES `survey_access_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `survey_answers_table` ADD CONSTRAINT `survey_answers_table_skillId_survey_skills_table_id_fk` FOREIGN KEY (`skillId`) REFERENCES `survey_skills_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `survey_skills_table` ADD CONSTRAINT `survey_skills_table_surveyId_surveys_table_id_fk` FOREIGN KEY (`surveyId`) REFERENCES `surveys_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `surveys_table` ADD CONSTRAINT `surveys_table_owner_users_table_id_fk` FOREIGN KEY (`owner`) REFERENCES `users_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +CREATE INDEX `token_index` ON `survey_access_table` (`accessToken`); \ No newline at end of file diff --git a/drizzle/meta/0000_snapshot.json b/drizzle/meta/0000_snapshot.json new file mode 100644 index 0000000..b0318dd --- /dev/null +++ b/drizzle/meta/0000_snapshot.json @@ -0,0 +1,366 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "20bd9f86-c801-4ead-841c-558127978194", + "prevId": "00000000-0000-0000-0000-000000000000", + "tables": { + "sessions": { + "name": "sessions", + "columns": { + "token": { + "name": "token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "userId": { + "name": "userId", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "sessions_userId_users_table_id_fk": { + "name": "sessions_userId_users_table_id_fk", + "tableFrom": "sessions", + "tableTo": "users_table", + "columnsFrom": [ + "userId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "sessions_token": { + "name": "sessions_token", + "columns": [ + "token" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "survey_access_table": { + "name": "survey_access_table", + "columns": { + "id": { + "name": "id", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": true + }, + "surveyId": { + "name": "surveyId", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "recepientEmail": { + "name": "recepientEmail", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "accessToken": { + "name": "accessToken", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "token_index": { + "name": "token_index", + "columns": [ + "accessToken" + ], + "isUnique": false + } + }, + "foreignKeys": { + "survey_access_table_surveyId_surveys_table_id_fk": { + "name": "survey_access_table_surveyId_surveys_table_id_fk", + "tableFrom": "survey_access_table", + "tableTo": "surveys_table", + "columnsFrom": [ + "surveyId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "survey_access_table_id": { + "name": "survey_access_table_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "survey_answers_table": { + "name": "survey_answers_table", + "columns": { + "participantId": { + "name": "participantId", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skillId": { + "name": "skillId", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "rating": { + "name": "rating", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "survey_answers_table_participantId_survey_access_table_id_fk": { + "name": "survey_answers_table_participantId_survey_access_table_id_fk", + "tableFrom": "survey_answers_table", + "tableTo": "survey_access_table", + "columnsFrom": [ + "participantId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "survey_answers_table_skillId_survey_skills_table_id_fk": { + "name": "survey_answers_table_skillId_survey_skills_table_id_fk", + "tableFrom": "survey_answers_table", + "tableTo": "survey_skills_table", + "columnsFrom": [ + "skillId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "survey_answers_table_participantId_skillId_pk": { + "name": "survey_answers_table_participantId_skillId_pk", + "columns": [ + "participantId", + "skillId" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "survey_skills_table": { + "name": "survey_skills_table", + "columns": { + "id": { + "name": "id", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": true + }, + "surveyId": { + "name": "surveyId", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "survey_skills_table_surveyId_surveys_table_id_fk": { + "name": "survey_skills_table_surveyId_surveys_table_id_fk", + "tableFrom": "survey_skills_table", + "tableTo": "surveys_table", + "columnsFrom": [ + "surveyId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "survey_skills_table_id": { + "name": "survey_skills_table_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "surveys_table": { + "name": "surveys_table", + "columns": { + "id": { + "name": "id", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": true + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "surveys_table_owner_users_table_id_fk": { + "name": "surveys_table_owner_users_table_id_fk", + "tableFrom": "surveys_table", + "tableTo": "users_table", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "surveys_table_id": { + "name": "surveys_table_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "users_table": { + "name": "users_table", + "columns": { + "id": { + "name": "id", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": true + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "password_hash": { + "name": "password_hash", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "users_table_id": { + "name": "users_table_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": { + "users_table_email_unique": { + "name": "users_table_email_unique", + "columns": [ + "email" + ] + } + }, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json new file mode 100644 index 0000000..51c282d --- /dev/null +++ b/drizzle/meta/_journal.json @@ -0,0 +1,13 @@ +{ + "version": "7", + "dialect": "mysql", + "entries": [ + { + "idx": 0, + "version": "5", + "when": 1732727438120, + "tag": "0000_harsh_warlock", + "breakpoints": true + } + ] +} \ No newline at end of file