TIF_NGANJUK_E41220737/database/seeders/ProdukSeeder.php

120 lines
4.4 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\Produk;
use App\Models\ProdukImage;
use App\Models\Kategori;
use App\Models\Petani;
use Illuminate\Support\Str;
class ProdukSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$petani = Petani::inRandomOrder()->first();
if (!$petani) {
$this->command->error('Tabel petani kosong. Jalankan PetaniSeeder terlebih dahulu!');
return;
}
// KATEGORI
$kategoriGabah = [
['nama' => 'Gabah Kering Panen (GKP)', 'slug' => 'gkp', 'ikon' => 'fas fa-seedling'],
['nama' => 'Gabah Kering Giling (GKG)', 'slug' => 'gkg', 'ikon' => 'fas fa-sun'],
['nama' => 'Benih Padi Unggul', 'slug' => 'benih-padi', 'ikon' => 'fas fa-leaf'],
['nama' => 'Padi Ketan', 'slug' => 'padi-ketan', 'ikon' => 'fas fa-box'],
['nama' => 'Padi Organik', 'slug' => 'padi-organik', 'ikon' => 'fas fa-heart'],
];
foreach ($kategoriGabah as $k) {
Kategori::firstOrCreate(
['slug' => $k['slug']],
[
'nama_kategori' => $k['nama'],
'ikon' => $k['ikon']
]
);
}
// DAFTAR PRODUK
$daftarProduk = [
[
'nama' => 'Gabah Ciherang (GKP) Baru Panen',
'harga' => 5200,
'stok' => 2000,
'deskripsi' => 'Gabah varietas Ciherang kondisi Kering Panen (GKP). Baru dipotong pagi ini. Bulir kuning bersih, hampa rendah. Lokasi sawah pinggir jalan raya, akses truk mudah.',
'kategori_slug' => 'gkp',
'gallery' => 2
],
[
'nama' => 'Gabah IR-64 Siap Giling (GKG)',
'harga' => 7500,
'stok' => 500,
'deskripsi' => 'Gabah IR-64 kondisi Kering Giling (GKG). Kadar air sudah dibawah 14%, siap masuk huller/penggilingan. Dijamin rendemen beras tinggi.',
'kategori_slug' => 'gkg',
'gallery' => 3
],
[
'nama' => 'Benih Padi Inpari 32 Bersertifikat',
'harga' => 15000,
'stok' => 50,
'deskripsi' => 'Benih padi varietas Inpari 32 label ungu. Tahan wereng dan penyakit hawar daun. Potensi hasil panen hingga 8 ton/hektar.',
'kategori_slug' => 'benih-padi',
'gallery' => 1
],
[
'nama' => 'Gabah Padi Ketan Putih Super',
'harga' => 8000,
'stok' => 300,
'deskripsi' => 'Padi ketan putih murni, tidak tercampur padi biasa. Cocok untuk industri tape atau olahan ketan. Kualitas super.',
'kategori_slug' => 'padi-ketan',
'gallery' => 2
],
[
'nama' => 'Gabah Mentik Wangi Organik',
'harga' => 9000,
'stok' => 100,
'deskripsi' => 'Gabah Mentik Wangi (Pandan Wangi Jawa) ditanam full organik tanpa pestisida kimia. Aroma sangat wangi, beras pulen.',
'kategori_slug' => 'padi-organik',
'gallery' => 2
],
[
'nama' => 'Gabah Kering Giling (GKG) Situbagendit',
'harga' => 7200,
'stok' => 1500,
'deskripsi' => 'Gabah Situbagendit kering jemur 3 hari. Cocok untuk stok gudang penggilingan. Lokasi Nganjuk.',
'kategori_slug' => 'gkg',
'gallery' => 1
],
];
// INSERT DATA
foreach ($daftarProduk as $item) {
$kategori = Kategori::where('slug', $item['kategori_slug'])->first();
// Create Produk
$produk = Produk::create([
'petani_id' => $petani->id,
'kategori_id' => $kategori->id,
'nama_produk' => $item['nama'],
'harga' => $item['harga'],
'stok' => $item['stok'],
'deskripsi' => $item['deskripsi'],
'foto_produk' => null,
]);
for ($i = 0; $i < $item['gallery']; $i++) {
ProdukImage::create([
'produk_id' => $produk->id,
'foto' => 'dummy/gabah/sample_' . $i . '.jpg',
]);
}
}
}
}