diff --git a/db/Objects/tables/school_district.sql b/db/Objects/tables/school_district.sql new file mode 100644 index 0000000..ae43873 --- /dev/null +++ b/db/Objects/tables/school_district.sql @@ -0,0 +1,7 @@ +CREATE TABLE `school_district` ( + `id_school_district` char(36) NOT NULL, + `name` varchar(255) DEFAULT NULL, + `contact_email` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id_school_district`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; diff --git a/db/Objects/tables/student.sql b/db/Objects/tables/student.sql new file mode 100644 index 0000000..44eebd8 --- /dev/null +++ b/db/Objects/tables/student.sql @@ -0,0 +1,12 @@ +CREATE TABLE `student` ( + `id_student` char(36) NOT NULL, + `id_program` char(36) DEFAULT NULL, + `identifier` varchar(50) DEFAULT NULL, + `program_year` int DEFAULT NULL, + `enrollment_date` date DEFAULT NULL, + `next_iep_date` date DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id_student`), + KEY `student_ibfk_1` (`id_program`), + CONSTRAINT `student_ibfk_1` FOREIGN KEY (`id_program`) REFERENCES `program` (`id_program`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; diff --git a/db/Objects/tables/user.sql b/db/Objects/tables/user.sql new file mode 100644 index 0000000..821ef59 --- /dev/null +++ b/db/Objects/tables/user.sql @@ -0,0 +1,12 @@ +CREATE TABLE `user` ( + `id_user` char(36) NOT NULL, + `email` varchar(255) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, + `password_hash` varchar(255) DEFAULT NULL, + `password_salt` varchar(255) DEFAULT NULL, + `password_updated_at` timestamp NULL DEFAULT NULL, + `failed_login_attempts` int DEFAULT '0', + `locked_until` timestamp NULL DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id_user`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; diff --git a/db/Objects/tables/user_program.sql b/db/Objects/tables/user_program.sql new file mode 100644 index 0000000..4ab363e --- /dev/null +++ b/db/Objects/tables/user_program.sql @@ -0,0 +1,16 @@ +CREATE TABLE `user_program` ( + `id_user_program` char(36) NOT NULL, + `id_user` char(36) DEFAULT NULL, + `id_program` char(36) DEFAULT NULL, + `id_role` char(36) DEFAULT NULL, + `is_primary` tinyint(1) DEFAULT '0', + `status` varchar(20) DEFAULT 'active', + `joined_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id_user_program`), + UNIQUE KEY `uq_user_program` (`id_user`,`id_program`), + KEY `idx_id_program` (`id_program`), + KEY `idx_user_program_role` (`id_role`), + CONSTRAINT `user_program_ibfk_1` FOREIGN KEY (`id_user`) REFERENCES `user` (`id_user`), + CONSTRAINT `user_program_ibfk_2` FOREIGN KEY (`id_program`) REFERENCES `program` (`id_program`), + CONSTRAINT `user_program_ibfk_3` FOREIGN KEY (`id_role`) REFERENCES `role` (`id_role`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; diff --git a/db/Objects/tables/user_student.sql b/db/Objects/tables/user_student.sql new file mode 100644 index 0000000..ef9286b --- /dev/null +++ b/db/Objects/tables/user_student.sql @@ -0,0 +1,11 @@ +CREATE TABLE `user_student` ( + `id_user_student` char(36) NOT NULL, + `id_user` char(36) DEFAULT NULL, + `id_student` char(36) DEFAULT NULL, + `is_primary` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`id_user_student`), + KEY `user_student_ibfk_1` (`id_user`), + KEY `user_student_ibfk_2` (`id_student`), + CONSTRAINT `user_student_ibfk_1` FOREIGN KEY (`id_user`) REFERENCES `user` (`id_user`), + CONSTRAINT `user_student_ibfk_2` FOREIGN KEY (`id_student`) REFERENCES `student` (`id_student`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;