43 lines
1.0 KiB
PHP
43 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\Expense;
|
|
use App\Models\User;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class ExpenseSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
$users = User::all();
|
|
|
|
if ($users->isEmpty()) {
|
|
User::factory(5)->create();
|
|
$users = User::all();
|
|
}
|
|
|
|
// Create 50 random expenses over the last year
|
|
Expense::factory(50)->create();
|
|
|
|
// Add some specific common expenses
|
|
$commonExpenses = ['Listrik Toko', 'Wifi Bulanan', 'Sampah Bulanan', 'Air'];
|
|
|
|
foreach (range(1, 12) as $month) {
|
|
$date = now()->subMonths($month)->startOfMonth();
|
|
|
|
foreach ($commonExpenses as $name) {
|
|
Expense::create([
|
|
'user_id' => $users->random()->id,
|
|
'name' => $name,
|
|
'amount' => rand(50000, 500000),
|
|
'created_at' => $date->copy()->addDays(rand(0, 28)),
|
|
]);
|
|
}
|
|
}
|
|
}
|
|
}
|