From 54647b58f4a14403b1410911714b37b68ee7c347 Mon Sep 17 00:00:00 2001 From: Sallu9007 Date: Sun, 26 Jan 2025 00:46:53 +0530 Subject: [PATCH] Build: Database setup --- .../2025_01_25_190302_create_roles_table.php | 35 +++++++++++++++++ ..._01_25_190303_create_departments_table.php | 38 +++++++++++++++++++ ...add_role_and_department_to_users_table.php | 30 +++++++++++++++ database/seeders/DatabaseSeeder.php | 11 ++++-- database/seeders/DepartmentSeeder.php | 22 +++++++++++ database/seeders/RoleSeeder.php | 24 ++++++++++++ 6 files changed, 157 insertions(+), 3 deletions(-) create mode 100644 database/migrations/2025_01_25_190302_create_roles_table.php create mode 100644 database/migrations/2025_01_25_190303_create_departments_table.php create mode 100644 database/migrations/2025_01_25_190304_add_role_and_department_to_users_table.php create mode 100644 database/seeders/DepartmentSeeder.php create mode 100644 database/seeders/RoleSeeder.php diff --git a/database/migrations/2025_01_25_190302_create_roles_table.php b/database/migrations/2025_01_25_190302_create_roles_table.php new file mode 100644 index 0000000..f4e3fc7 --- /dev/null +++ b/database/migrations/2025_01_25_190302_create_roles_table.php @@ -0,0 +1,35 @@ +id(); + $table->string('name'); + $table->timestamps(); + }); + + // Insert predefined roles + // DB::table('roles')->insert([ + // ['name' => 'Admin'], + // ['name' => 'Coordinator'], + // ['name' => 'Faculty'] + // ]); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('roles'); + } +}; diff --git a/database/migrations/2025_01_25_190303_create_departments_table.php b/database/migrations/2025_01_25_190303_create_departments_table.php new file mode 100644 index 0000000..ced3ecf --- /dev/null +++ b/database/migrations/2025_01_25_190303_create_departments_table.php @@ -0,0 +1,38 @@ +id(); + $table->string('name'); + $table->timestamps(); + }); + + // Insert predefined departments + // DB::table('departments')->insert([ + // ['name' => 'Computer Engineering'], + // ['name' => 'Information Technology'], + // ['name' => 'Mechanical Engineering'], + // ['name' => 'Electrical Engineering'], + // ['name' => 'Civil Engineering'] + // ]); + } + + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('departments'); + } +}; diff --git a/database/migrations/2025_01_25_190304_add_role_and_department_to_users_table.php b/database/migrations/2025_01_25_190304_add_role_and_department_to_users_table.php new file mode 100644 index 0000000..27a59bf --- /dev/null +++ b/database/migrations/2025_01_25_190304_add_role_and_department_to_users_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('role_id')->after('id'); + $table->unsignedBigInteger('department_id')->nullable()->after('role_id'); + $table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade'); + $table->foreign('department_id')->references('id')->on('departments')->onDelete('cascade'); + }); + } + + public function down() + { + Schema::table('users', function (Blueprint $table) { + $table->dropForeign(['role_id']); + $table->dropForeign(['department_id']); + $table->dropColumn(['role_id', 'department_id']); + }); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d01a0ef..c8ec646 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -15,9 +15,14 @@ class DatabaseSeeder extends Seeder { // User::factory(10)->create(); - User::factory()->create([ - 'name' => 'Test User', - 'email' => 'test@example.com', + $this->call([ + RoleSeeder::class, + DepartmentSeeder::class, ]); + + // User::factory()->create([ + // 'name' => 'Test User', + // 'email' => 'test@example.com', + // ]); } } diff --git a/database/seeders/DepartmentSeeder.php b/database/seeders/DepartmentSeeder.php new file mode 100644 index 0000000..313e5b5 --- /dev/null +++ b/database/seeders/DepartmentSeeder.php @@ -0,0 +1,22 @@ +insert([ + ['name' => 'Admin'], + ['name' => 'Coordinator'], + ['name' => 'Faculty'], + ]); + } +} diff --git a/database/seeders/RoleSeeder.php b/database/seeders/RoleSeeder.php new file mode 100644 index 0000000..2d6757a --- /dev/null +++ b/database/seeders/RoleSeeder.php @@ -0,0 +1,24 @@ +insert([ + ['name' => 'Computer Engineering'], + ['name' => 'Information Technology'], + ['name' => 'Mechanical Engineering'], + ['name' => 'Electrical Engineering'], + ['name' => 'Civil Engineering'], + ]); + } +}