Faker Broooooo

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 4

<?

php

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Faker\Factory;

class DatabaseSeeder extends Seeder


{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$faker = Factory::create('id_ID');
$userTypes = ['admin', 'mahasiswa', 'dosen', 'prodi'];
$alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$adminTypes = ['superadmin', 'admin'];

foreach ($userTypes as $userType) {


// Generate user data
$user = DB::table('users')->insertGetId([
'name' => $faker->name,
'username' => $faker->userName,
'email' => $faker->unique()->safeEmail,
'status' => $userType,
'password' => Hash::make('password'),
]);

if ($userType == 'admin') {
DB::table('admins')->insert([
[
'name' => DB::table('users')->where('id', $user)-
>value('name'),
'status' => $faker->randomElement(['admin', 'superadmin']),
'id_user' => $user,
],
]);
} elseif ($userType == 'dosen') {
$gelar = $faker->randomElement(['ST., MT', 'Ir., MT', 'SH., MH',
'SST., MT']);
$name = DB::table('users')->where('id', $user)->value('name') . ' '
. $gelar;

// Generate NIP 1
$nip1 = '';
for ($i = 0; $i < 18; $i++) {
$nip1 .= $faker->randomDigit;
}
// Check uniqueness of NIP 1
$existingNip1 = DB::table('dosens')->where('nip', $nip1)->exists();
while ($existingNip1) {
$nip1 = '';
for ($i = 0; $i < 18; $i++) {
$nip1 .= $faker->randomDigit;
}
$existingNip1 = DB::table('dosens')->where('nip', $nip1)-
>exists();
}

DB::table('dosens')->insert([
[
'nip' => $nip1,
'name' => $name,
'kode' => $faker->randomElement(str_split($alphabet, 1))
. $faker->randomElement(str_split($alphabet, 1))
. $faker->randomElement(str_split($alphabet, 1)),
'nidn' => $faker->unique()->randomNumber(9),
'jenis_kelamin' => $faker->randomElement(['laki-laki',
'perempuan']),
'id_user' => $user,
],
]);
} elseif ($userType == 'mahasiswa') {
$angkatan = $faker->randomElement([2016, 2017, 2018, 2019]);

DB::table('mahasiswas')->insert([
[
'nim' => $faker->unique()->randomNumber(9),
'name' => DB::table('users')->where('id', $user)-
>value('name'),
'angkatan' => $angkatan,
'jenis_kelamin' => $faker->randomElement(['laki-laki',
'perempuan']),
'status' => 'Aktif',
'id_user' => $user,
],
]);
} elseif ($userType == 'prodi') {
// Generate NIP 2
$nip2 = '';
for ($i = 0; $i < 18; $i++) {
$nip2 .= $faker->randomDigit;
}
// Check uniqueness of NIP 2
$existingNip2 = DB::table('dosens')->where('nip', $nip2)->exists();
while ($existingNip2) {
$nip2 = '';
for ($i = 0; $i < 18; $i++) {
$nip2 .= $faker->randomDigit;
}
$existingNip2 = DB::table('dosens')->where('nip', $nip2)-
>exists();
}

DB::table('dosens')->insert([
[
'nip' => $nip2,
'name' => DB::table('users')->where('id', $user)-
>value('name'),
'kode' => $faker->randomElement(str_split($alphabet, 1))
. $faker->randomElement(str_split($alphabet, 1))
. $faker->randomElement(str_split($alphabet, 1)),
'nidn' => $faker->unique()->randomNumber(9),
'jenis_kelamin' => $faker->randomElement(['laki-laki',
'perempuan']),
'id_user' => $user,
],
]);

/* super */
} elseif ($userType == 'admin' && in_array('superadmin', $adminTypes))
{
DB::table('admins')->insert([
[
'name' => DB::table('users')->where('id', $user)-
>value('name'),
'status' => 'superadmin',
'id_user' => $user,
],
]);

$gelar = $faker->randomElement(['ST., MT', 'Ir., MT', 'SH., MH',


'SST., MT']);
$name = DB::table('users')->where('id', $user)->value('name') . ' '
. $gelar;

// Generate NIP 1
$nip1 = '';
for ($i = 0; $i < 18; $i++) {
$nip1 .= $faker->randomDigit;
}
// Check uniqueness of NIP 1
$existingNip1 = DB::table('dosens')->where('nip', $nip1)->exists();
while ($existingNip1) {
$nip1 = '';
for ($i = 0; $i < 18; $i++) {
$nip1 .= $faker->randomDigit;
}
$existingNip1 = DB::table('dosens')->where('nip', $nip1)-
>exists();
}

DB::table('dosens')->insert([
[
'nip' => $nip1,
'name' => $name,
'kode' => $faker->randomElement(str_split($alphabet, 1))
. $faker->randomElement(str_split($alphabet, 1))
. $faker->randomElement(str_split($alphabet, 1)),
'nidn' => $faker->unique()->randomNumber(9),
'jenis_kelamin' => $faker->randomElement(['laki-laki',
'perempuan']),
'id_user' => $user,
],
]);

$angkatan = $faker->randomElement([2016, 2017, 2018, 2019]);

DB::table('mahasiswas')->insert([
[
'nim' => $faker->unique()->randomNumber(9),
'name' => DB::table('users')->where('id', $user)-
>value('name'),
'angkatan' => $angkatan,
'jenis_kelamin' => $faker->randomElement(['laki-laki',
'perempuan']),
'status' => 'Aktif',
'id_user' => $user,
],
]);
}
}
}
}

You might also like