72 lines
2.4 KiB
PHP
72 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use App\Models\Cat;
|
|
use App\Models\Matting;
|
|
use App\Models\Kitten;
|
|
use Illuminate\Support\Carbon;
|
|
|
|
class MattingSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
// Ambil data kucing untuk indukan
|
|
$sires = Cat::where('jenis_kelamin', 'Jantan')->get();
|
|
$dams = Cat::where('jenis_kelamin', 'Betina')->get();
|
|
|
|
if ($sires->isEmpty() || $dams->isEmpty()) {
|
|
$this->command->warn("Data kucing jantan/betina belum ada. Jalankan CatSeeder dulu!");
|
|
return;
|
|
}
|
|
|
|
// SCENARIO 1: Breeding Baru (Countdown Indigo)
|
|
// Estimasi lahir masih sekitar 50 hari lagi
|
|
Matting::create([
|
|
'sire_id' => $sires->first()->id,
|
|
'dam_id' => $dams->first()->id,
|
|
'ems_bapak' => 'BSH a',
|
|
'ems_ibu' => 'BSH a',
|
|
'tgl_kawin_awal' => Carbon::now()->subDays(10),
|
|
'tgl_kawin_akhir' => Carbon::now()->subDays(7),
|
|
'jumlah_anak_hidup' => 0,
|
|
]);
|
|
|
|
// SCENARIO 2: Breeding Urgent (Countdown Merah + Pulse)
|
|
// Sisa 3 hari lagi menuju HPL (H+63)
|
|
Matting::create([
|
|
'sire_id' => $sires->last()->id,
|
|
'dam_id' => $dams->last()->id,
|
|
'ems_bapak' => 'PER n 03',
|
|
'ems_ibu' => 'PER f 03',
|
|
'tgl_kawin_awal' => Carbon::now()->subDays(60),
|
|
'tgl_kawin_akhir' => Carbon::now()->subDays(57),
|
|
'jumlah_anak_hidup' => 0,
|
|
]);
|
|
|
|
// SCENARIO 3: Breeding Selesai (Menampilkan Jumlah Anak)
|
|
$m3 = Matting::create([
|
|
'sire_id' => $sires->random()->id,
|
|
'dam_id' => $dams->random()->id,
|
|
'ems_bapak' => 'BSH ns 11',
|
|
'ems_ibu' => 'BSH ns 11',
|
|
'tgl_kawin_awal' => Carbon::now()->subMonths(4),
|
|
'tgl_kawin_akhir' => Carbon::now()->subMonths(4)->addDays(3),
|
|
'jumlah_anak_hidup' => 3,
|
|
]);
|
|
|
|
// Tambahkan data anak kucing untuk Matting ke-3
|
|
for ($i = 1; $i <= 3; $i++) {
|
|
Kitten::create([
|
|
'matting_id' => $m3->id,
|
|
'nama' => 'Earrin ' . ['Shadow', 'Snowy', 'Ginger'][$i-1],
|
|
'jenis_kelamin' => $i % 2 == 0 ? 'Betina' : 'Jantan',
|
|
'tgl_lahir' => Carbon::now()->subMonths(2),
|
|
'kode_ems' => 'BSH ns 11',
|
|
]);
|
|
}
|
|
|
|
$this->command->info("Dummy Matting Cattery berhasil dibuat!");
|
|
}
|
|
} |