Aplikasi_Rekber/database/seeders/DatabaseSeeder.php

194 lines
7.0 KiB
PHP

<?php
namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use App\Models\Contact;
use App\Models\Refund;
use App\Models\RefundDescription;
use Illuminate\Database\Seeder;
use App\Models\User;
use Carbon\Carbon;
use App\Models\Setting;
use App\Models\Transaction;
use App\Models\TransactionDescription;
use Illuminate\Support\Str;
use Faker\Factory as FakerFactory;
use Faker\Provider\id_ID\Person as Person;
use Laravolt\Indonesia\Seeds\CitiesSeeder;
use Laravolt\Indonesia\Seeds\VillagesSeeder;
use Laravolt\Indonesia\Seeds\DistrictsSeeder;
use Laravolt\Indonesia\Seeds\ProvincesSeeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*/
public function run(): void
{
$faker = FakerFactory::create();
$faker->addProvider(new Person($faker));
User::factory()->create([
'id' => Str::uuid(),
'nama_depan' => $faker->firstName,
'nama_belakang' => $faker->lastName,
'tanggal_lahir' => $faker->date('Y-m-d', 'now'),
'email' => 'admin@example.net',
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
'role' => 'Admin',
'nik' => $faker->nik($faker->randomElement(['male', 'female']), $faker->dateTimeBetween('-65 years', '-18 years')),
'alamat' => $faker->address,
'nohp' => $faker->phoneNumber(),
'status' => 'Finished',
'persentase_kemiripan' => 100,
'gender' => $faker->randomElement(['Laki-laki', 'Perempuan']),
'kode_kelurahan' => '1101012002',
]);
$user1 = User::factory()->create([
'id' => Str::uuid(),
'nama_depan' => $faker->firstName,
'nama_belakang' => $faker->lastName,
'tanggal_lahir' => $faker->date('Y-m-d', 'now'),
'email' => $faker->email,
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
'role' => 'User',
'nik' => $faker->nik($faker->randomElement(['male', 'female']), $faker->dateTimeBetween('-65 years', '-18 years')),
'alamat' => $faker->address,
'nohp' => $faker->phoneNumber(),
'status' => 'Finished',
'persentase_kemiripan' => 100,
'gender' => $faker->randomElement(['Laki-laki', 'Perempuan']),
'kode_kelurahan' => '1101012002',
'nama_bank' => 'mandiri',
'no_rek' => '019809210873'
]);
$user2 = User::factory()->create([
'id' => Str::uuid(),
'nama_depan' => $faker->firstName,
'nama_belakang' => $faker->lastName,
'tanggal_lahir' => $faker->date('Y-m-d', 'now'),
'email' => $faker->email(),
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
'role' => 'User',
'nik' => $faker->nik($faker->randomElement(['male', 'female']), $faker->dateTimeBetween('-65 years', '-18 years')),
'alamat' => $faker->address,
'nohp' => $faker->phoneNumber(),
'status' => 'Finished',
'persentase_kemiripan' => 100,
'gender' => $faker->randomElement(['Laki-laki', 'Perempuan']),
'kode_kelurahan' => '1101012002',
'nama_bank' => 'bca',
'no_rek' => '01980921'
]);
// User::factory(20)->create();
$now = Carbon::now()->tz('Asia/Jakarta');
$bulan = $now->format('n');
$tahun = $now->year;
Setting::create([
'id' => Str::uuid(),
'bulan' => $bulan,
'tahun' => $tahun,
'persentase' => 5,
'status' => 'Active',
]);
$transaction = Transaction::create([
'id' => Str::uuid(),
'pembeli' => $user1->email,
'penjual' => $user2->email,
'nama_barang' => 'hah',
'deskripsi_transaksi' => null,
'satuan_barang' => 'barang',
'harga_barang' => 2000,
'jumlah_barang' => 2,
'persentase_keuntungan' => 2,
'total_keuntungan' => 2,
'total_harga' => 2,
'total_bayar' => 2,
'token' => 'asda',
'status_transaksi' => 'created',
'batas_pembayaran' => now(),
'batas_pengiriman_barang_awal' => now(),
'batas_pengiriman_barang_akhir' => now(),
'nama_bank_penjual' => $user2->nama_bank,
'no_rek_penjual' => $user2->no_rek,
]);
TransactionDescription::create([
'transaction_id' => $transaction->id,
'status' => 'pending',
'user' => $user1->email,
'judul' => 'fa fa-plus',
'background' => 'bg-buyer',
'deskripsi' => $user1->nama_depan . ' telah membuat transaksi baru dengan ' . $user2->nama_depan,
]);
$transactionRefund = Transaction::create([
'id' => Str::uuid(),
'pembeli' => $user1->email,
'penjual' => $user2->email,
'nama_barang' => 'hah',
'deskripsi_transaksi' => null,
'satuan_barang' => 'barang',
'harga_barang' => 2000,
'jumlah_barang' => 2,
'persentase_keuntungan' => 2,
'total_keuntungan' => 2,
'total_harga' => 2,
'total_bayar' => 2,
'token' => 'asda',
'status_transaksi' => 'success',
'status_pembayaran' => 'refund',
'batas_pembayaran' => now(),
'batas_pengiriman_barang_awal' => now(),
'batas_pengiriman_barang_akhir' => now(),
'nama_bank_penjual' => $user2->nama_bank,
'no_rek_penjual' => $user2->no_rek,
]);
$refund = Refund::create([
'transaction_id' => $transactionRefund->id,
'total' => $transactionRefund->total_harga,
'due_date' => now(),
'complaint' => 'ha',
]);
RefundDescription::create([
'refund_id' => $refund->id,
'filename' => 'img_1.jpg',
'type' => 'image'
]);
RefundDescription::create([
'refund_id' => $refund->id,
'filename' => 'img_2.jpg',
'type' => 'image'
]);
Contact::create([
'pemilik_kontak' => $user1->email,
'relasi_kontak' => $user2->email
]);
Contact::create([
'pemilik_kontak' => $user2->email,
'relasi_kontak' => $user1->email
]);
$this->call([ProvincesSeeder::class, CitiesSeeder::class, DistrictsSeeder::class, VillagesSeeder::class]);
}
}