Files
ilycats/database/seeders/MattingSeeder.php
T
2026-02-08 15:16:35 +07:00

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!");
}
}