<?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', 
                ]);
            }
        }
    }
}