<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use App\Models\Member;
use App\Models\WebUser;
use App\Models\JenisSimpanan;
use App\Models\JenisPinjaman;
use App\Models\ProductCategory;
use App\Models\Product;
use App\Models\Banner;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        // Seed Jenis Simpanan
        JenisSimpanan::create([
            'nama_simpanan' => 'Simpanan Pokok',
            'kode_simpanan' => 'SP',
            'keterangan' => 'Simpanan pokok anggota'
        ]);

        JenisSimpanan::create([
            'nama_simpanan' => 'Simpanan Wajib',
            'kode_simpanan' => 'SW',
            'keterangan' => 'Simpanan wajib bulanan'
        ]);

        JenisSimpanan::create([
            'nama_simpanan' => 'Simpanan Sukarela',
            'kode_simpanan' => 'SS',
            'keterangan' => 'Simpanan sukarela'
        ]);

        // Seed Jenis Pinjaman
        JenisPinjaman::create([
            'nama_pinjaman' => 'Pinjaman Konsumtif',
            'kode_pinjaman' => 'PK',
            'bunga_persen' => 1.5,
            'keterangan' => 'Pinjaman untuk kebutuhan konsumtif'
        ]);

        JenisPinjaman::create([
            'nama_pinjaman' => 'Pinjaman Produktif',
            'kode_pinjaman' => 'PP',
            'bunga_persen' => 1.2,
            'keterangan' => 'Pinjaman untuk usaha produktif'
        ]);

        // Seed Member
        $member = Member::create([
            'nik' => '3201234567890001',
            'no_anggota' => 'ANG-001',
            'nama' => 'Budi Santoso',
            'tempat_lahir' => 'Jakarta',
            'tanggal_lahir' => '1990-01-01',
            'jenis_kelamin' => 'L',
            'email' => 'budi@example.com',
            'no_telp' => '081234567890',
            'alamat' => 'Jl. Contoh No. 123',
            'status' => 'aktif',
            'unit_kerja' => 'Perumnas Jakarta',
            'pekerjaan' => 'Karyawan',
            'simpanan_pokok' => 1000000,
            'simpanan_wajib' => 500000,
            'simpanan_sukarela' => 2000000,
            'jumlah_simpanan' => 3500000
        ]);

        // Seed Web User
        WebUser::create([
            'nama_user' => 'budisantoso',
            'passwd' => Hash::make('password123'),
            'user_id' => $member->nik,
            'is_active' => true
        ]);

        // Seed Product Categories
        ProductCategory::create(['nama' => 'Makanan', 'icon' => 'food', 'urutan' => 1]);
        ProductCategory::create(['nama' => 'Minuman', 'icon' => 'drink', 'urutan' => 2]);
        ProductCategory::create(['nama' => 'Kebutuhan Rumah', 'icon' => 'home', 'urutan' => 3]);

        // Seed Products
        Product::create([
            'kode_produk' => 'PRD-001',
            'nama' => 'Beras Premium 5kg',
            'deskripsi' => 'Beras berkualitas premium',
            'harga' => 75000,
            'stok' => 100,
            'kategori_id' => 1,
            'gambar' => null,
            'diskon_persen' => 0,
            'is_active' => true
        ]);

        Product::create([
            'kode_produk' => 'PRD-002',
            'nama' => 'Minyak Goreng 2L',
            'deskripsi' => 'Minyak goreng kemasan 2 liter',
            'harga' => 35000,
            'stok' => 50,
            'kategori_id' => 1,
            'gambar' => null,
            'diskon_persen' => 5,
            'is_active' => true
        ]);

        Product::create([
            'kode_produk' => 'PRD-003',
            'nama' => 'Air Mineral 600ml',
            'deskripsi' => 'Air mineral kemasan botol',
            'harga' => 3000,
            'stok' => 200,
            'kategori_id' => 2,
            'gambar' => null,
            'diskon_persen' => 0,
            'is_active' => true
        ]);

        // Seed Banners
        Banner::create([
            'judul' => 'Promo Ramadhan',
            'gambar' => 'banner1.jpg',
            'link' => null,
            'urutan' => 1,
            'is_active' => true
        ]);
    }
}
