From 7c45871646fb9c6cb9fb0717721151b1e9e3fef1 Mon Sep 17 00:00:00 2001 From: Michal Feher Date: Tue, 17 Jan 2023 10:28:16 +0100 Subject: [PATCH] teams and users - DB migrations, seeders, models --- be/app/Models/Team.php | 21 ++++++++++ be/app/Models/User.php | 14 +++---- be/database/factories/TeamFactory.php | 24 ++++++++++++ be/database/factories/UserFactory.php | 8 +++- .../2023_01_16_103816_create_teams_table.php | 32 +++++++++++++++ .../2023_01_17_071943_update_users_table.php | 39 +++++++++++++++++++ .../2023_01_17_073747_reorder_users_table.php | 30 ++++++++++++++ ...23_01_17_081400_create_team_user_table.php | 31 +++++++++++++++ be/database/seeders/TeamSeeder.php | 25 ++++++++++++ be/database/seeders/UserSeeder.php | 22 +++++++++++ 10 files changed, 235 insertions(+), 11 deletions(-) create mode 100644 be/app/Models/Team.php create mode 100644 be/database/factories/TeamFactory.php create mode 100644 be/database/migrations/2023_01_16_103816_create_teams_table.php create mode 100644 be/database/migrations/2023_01_17_071943_update_users_table.php create mode 100644 be/database/migrations/2023_01_17_073747_reorder_users_table.php create mode 100644 be/database/migrations/2023_01_17_081400_create_team_user_table.php create mode 100644 be/database/seeders/TeamSeeder.php create mode 100644 be/database/seeders/UserSeeder.php diff --git a/be/app/Models/Team.php b/be/app/Models/Team.php new file mode 100644 index 0000000..aa26518 --- /dev/null +++ b/be/app/Models/Team.php @@ -0,0 +1,21 @@ +belongsToMany(User::class); + } +} diff --git a/be/app/Models/User.php b/be/app/Models/User.php index 23b4063..a13a05a 100644 --- a/be/app/Models/User.php +++ b/be/app/Models/User.php @@ -2,7 +2,6 @@ namespace App\Models; -// use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; @@ -33,12 +32,9 @@ class User extends Authenticatable 'remember_token', ]; - /** - * The attributes that should be cast. - * - * @var array - */ - protected $casts = [ - 'email_verified_at' => 'datetime', - ]; + public function teams() + { + return $this->belongsToMany(Team::class); + } + } diff --git a/be/database/factories/TeamFactory.php b/be/database/factories/TeamFactory.php new file mode 100644 index 0000000..4ae446c --- /dev/null +++ b/be/database/factories/TeamFactory.php @@ -0,0 +1,24 @@ + + */ +class TeamFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition() + { + return [ + 'name' => fake()->company(), + ]; + } +} diff --git a/be/database/factories/UserFactory.php b/be/database/factories/UserFactory.php index 41f8ae8..8b200c5 100644 --- a/be/database/factories/UserFactory.php +++ b/be/database/factories/UserFactory.php @@ -18,11 +18,15 @@ class UserFactory extends Factory public function definition() { return [ - 'name' => fake()->name(), 'email' => fake()->unique()->safeEmail(), - 'email_verified_at' => now(), 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 'remember_token' => Str::random(10), + 'firstname' => fake()->firstname(), + 'lastname' => fake()->lastname(), + 'code' => strtoupper(Str::random(3)), + 'work_start' => '9.0', + 'work_end' => '17.0', + ]; } diff --git a/be/database/migrations/2023_01_16_103816_create_teams_table.php b/be/database/migrations/2023_01_16_103816_create_teams_table.php new file mode 100644 index 0000000..c91473e --- /dev/null +++ b/be/database/migrations/2023_01_16_103816_create_teams_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('name'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('teams'); + } +}; diff --git a/be/database/migrations/2023_01_17_071943_update_users_table.php b/be/database/migrations/2023_01_17_071943_update_users_table.php new file mode 100644 index 0000000..6c7e1c2 --- /dev/null +++ b/be/database/migrations/2023_01_17_071943_update_users_table.php @@ -0,0 +1,39 @@ +dropColumn('name'); + $table->dropColumn('email_verified_at'); + }); + + Schema::table('users', function (Blueprint $table) { + $table->string('firstname'); + $table->string('lastname'); + $table->string('code'); + $table->float('work_start', 3, 1); + $table->float('work_end', 3, 1); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('users'); + } +}; diff --git a/be/database/migrations/2023_01_17_073747_reorder_users_table.php b/be/database/migrations/2023_01_17_073747_reorder_users_table.php new file mode 100644 index 0000000..aee1cbd --- /dev/null +++ b/be/database/migrations/2023_01_17_073747_reorder_users_table.php @@ -0,0 +1,30 @@ +foreignIdFor(\App\Models\User::class); + $table->foreignIdFor(\App\Models\Team::class); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('team_user'); + } +}; diff --git a/be/database/seeders/TeamSeeder.php b/be/database/seeders/TeamSeeder.php new file mode 100644 index 0000000..b3d4c23 --- /dev/null +++ b/be/database/seeders/TeamSeeder.php @@ -0,0 +1,25 @@ +count(25) + ->hasUsers(5) + ->create(); + } +} diff --git a/be/database/seeders/UserSeeder.php b/be/database/seeders/UserSeeder.php new file mode 100644 index 0000000..b06c298 --- /dev/null +++ b/be/database/seeders/UserSeeder.php @@ -0,0 +1,22 @@ +count(200) + ->create(); + } +}