diff --git a/app/Enum/Gender.php b/app/Enum/Gender.php new file mode 100644 index 0000000..7937e2d --- /dev/null +++ b/app/Enum/Gender.php @@ -0,0 +1,9 @@ + 'https://ui-avatars.com/api/?name='.$this->name, diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 584104c..cccb64a 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -2,6 +2,8 @@ namespace Database\Factories; +use App\Enum\Gender; +use App\Enum\MaritalStatus; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; @@ -23,12 +25,18 @@ class UserFactory extends Factory */ public function definition(): array { + $gender = fake()->randomElement(Gender::cases()); + return [ - 'name' => fake()->name(), + 'name' => fake()->name($gender->value), 'email' => fake()->unique()->safeEmail(), 'email_verified_at' => now(), 'password' => static::$password ??= Hash::make('password'), 'remember_token' => Str::random(10), + 'phone' => fake()->phoneNumber(), + 'address' => fake()->address(), + 'marital_status' => fake()->randomElement(MaritalStatus::cases()), + 'gender' => $gender, ]; } diff --git a/database/migrations/2024_05_31_224655_add_role_image_phone_address_marital_status_to_users_table.php b/database/migrations/2024_05_31_224655_add_role_image_phone_address_marital_status_to_users_table.php new file mode 100644 index 0000000..9474d2d --- /dev/null +++ b/database/migrations/2024_05_31_224655_add_role_image_phone_address_marital_status_to_users_table.php @@ -0,0 +1,34 @@ +string('role')->default(\App\Enum\Role::STUDENT_GUARDIAN)->after('password'); + $table->string('image')->nullable()->after('role'); + $table->string('phone')->nullable()->after('image'); + $table->string('address')->nullable()->after('phone'); + $table->string('marital_status')->nullable()->after('phone'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn([ + 'role', 'image', 'phone', 'address', 'marital_status', + ]); + }); + } +}; diff --git a/database/migrations/2024_05_31_225735_add_gender_to_users_table.php b/database/migrations/2024_05_31_225735_add_gender_to_users_table.php new file mode 100644 index 0000000..8b15469 --- /dev/null +++ b/database/migrations/2024_05_31_225735_add_gender_to_users_table.php @@ -0,0 +1,28 @@ +string('gender')->after('name'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('gender'); + }); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d01a0ef..31d4da1 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -2,8 +2,8 @@ namespace Database\Seeders; +use App\Enum\Role; use App\Models\User; -// use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder @@ -13,11 +13,10 @@ class DatabaseSeeder extends Seeder */ public function run(): void { - // User::factory(10)->create(); - User::factory()->create([ - 'name' => 'Test User', - 'email' => 'test@example.com', + 'name' => 'Tuhfah Owner', + 'email' => 'owner@tuhfah.com', + 'role' => Role::OWNER, ]); } } diff --git a/database/seeders/Dummy/UserSeeder.php b/database/seeders/Dummy/UserSeeder.php new file mode 100644 index 0000000..e5c74cf --- /dev/null +++ b/database/seeders/Dummy/UserSeeder.php @@ -0,0 +1,28 @@ +create([ + 'role' => Role::HEADMASTER, + ]); + + User::factory(10)->create([ + 'role' => Role::TEACHER, + ]); + + User::factory(100)->create([ + 'role' => Role::STUDENT_GUARDIAN, + ]); + } +} diff --git a/lang/en/label.php b/lang/en/label.php index e99cae7..a2ccc7f 100644 --- a/lang/en/label.php +++ b/lang/en/label.php @@ -29,4 +29,13 @@ 'cancel' => 'Cancel', 'new' => 'New', 'detail' => 'Detail', + 'owner' => 'Owner', + 'headmaster' => 'Headmaster', + 'administrator' => 'Administrator', + 'teacher' => 'Teacher', + 'student_guardian' => 'Student Guardian', + 'single' => 'Single', + 'married' => 'Married', + 'divorced' => 'Divorced', + 'widowed' => 'Widowed', ]; diff --git a/lang/id/label.php b/lang/id/label.php index df2c19a..0090ad0 100644 --- a/lang/id/label.php +++ b/lang/id/label.php @@ -29,4 +29,13 @@ 'cancel' => 'Batalkan', 'new' => 'Baru', 'detail' => 'Detail', + 'owner' => 'Pemilik', + 'headmaster' => 'Kepala TPQ/TPA', + 'administrator' => 'Admin', + 'teacher' => 'Pengajar', + 'student_guardian' => 'Wali Santri', + 'single' => 'Belum Kawin', + 'married' => 'Kawin', + 'divorced' => 'Cerai Hidup', + 'widowed' => 'Cerai Mati', ]; diff --git a/resources/views/components/navbar.blade.php b/resources/views/components/navbar.blade.php index 153d7f6..0c9d8d7 100644 --- a/resources/views/components/navbar.blade.php +++ b/resources/views/components/navbar.blade.php @@ -42,7 +42,7 @@ class="github-button"