<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\DB;
use App\Models\ProfilJurusan;
use App\Models\Admin;
use App\Models\Petugas;
use App\Models\Alumni;
use App\Models\Guru;
use App\Models\Pengumuman;
use App\Models\Galeri;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        // 1. Seed Profil Jurusan (required for Alumni's foreign key)
        $profil = ProfilJurusan::updateOrCreate(
            ['id_profil' => 1],
            [
                'nama_jurusan' => 'Teknik Kendaraan Ringan Otomotif',
                'deskripsi' => 'Mendidik siswa menjadi mekanik andal dan profesional di bidang otomotif roda empat dan roda dua.',
                'visi' => 'Menjadi pusat keunggulan pendidikan vokasi otomotif berstandar industri global.',
                'misi' => 'Menyelenggarakan pembelajaran berbasis proyek, menjalin kerja sama dengan DUDI, dan melatih siswa berjiwa wirausaha.'
            ]
        );

        // 2. Seed Admin
        $admin = Admin::updateOrCreate(
            ['username' => 'admin'],
            [
                'nama_admin' => 'Davin Administrator',
                'password' => Hash::make('admin123'),
                'foto' => 'default_admin.jpg',
                'level' => 'superadmin'
            ]
        );

        // 3. Seed Petugas
        $petugas = Petugas::updateOrCreate(
            ['username' => 'petugas'],
            [
                'nama_petugas' => 'Agus Kurniawan',
                'password' => Hash::make('petugas123'),
                'jabatan' => 'Kepala Laboratorium Otomotif',
                'foto' => 'default_petugas.jpg',
                'id_admin' => $admin->id_admin
            ]
        );

        // 4. Seed Alumni
        $alumni = Alumni::updateOrCreate(
            ['username' => 'alumni'],
            [
                'id_profil' => $profil->id_profil,
                'nama' => 'Rudi Hermawan',
                'password' => Hash::make('alumni123'),
                'tahun_lulus' => 2024,
                'kelanjutan' => 'kerja',
                'tempat' => 'PT Astra Honda Motor',
                'jabatan' => 'Operator Perakitan Mesin',
                'testimoni' => 'Pembelajaran di jurusan Teknik Kendaraan Ringan sangat aplikatif dan membantu saya langsung mendapatkan pekerjaan setelah lulus.',
                'foto' => 'default_alumni.jpg'
            ]
        );

        // 5. Seed Guru (Teachers roster)
        Guru::updateOrCreate(
            ['nip' => 1982031101],
            [
                'id_profil' => $profil->id_profil,
                'nama_guru' => 'Bambang Triyono, S.Pd.',
                'mapel' => 'Teknik Kendaraan Ringan (TKR)',
                'jabatan' => 'Kepala Jurusan Otomotif',
                'foto' => 'default_guru.jpg'
            ]
        );

        Guru::updateOrCreate(
            ['nip' => 1988072402],
            [
                'id_profil' => $profil->id_profil,
                'nama_guru' => 'Siti Rahmawati, M.T.',
                'mapel' => 'Pemeliharaan Mesin Kendaraan',
                'jabatan' => 'Sekretaris Jurusan',
                'foto' => 'default_guru.jpg'
            ]
        );

        Guru::updateOrCreate(
            ['nip' => 1991051503],
            [
                'id_profil' => $profil->id_profil,
                'nama_guru' => 'Eko Prasetyo, S.ST.',
                'mapel' => 'Teknik Bodi Kendaraan Ringan (TBKR)',
                'jabatan' => 'Kepala Bengkel Otomotif',
                'foto' => 'default_guru.jpg'
            ]
        );

        // 6. Seed Pengumuman (Announcements)
        Pengumuman::updateOrCreate(
            ['judul' => 'Pendaftaran Siswa Baru (PPDB) Tahun Ajaran 2026/2027 Telah Dibuka!'],
            [
                'isi' => 'Segera daftarkan diri Anda untuk menjadi bagian dari generasi teknisi handal masa depan di jurusan Teknik Kendaraan Ringan (TKR) atau Teknik Bodi Kendaraan Ringan (TBKR). Kuota terbatas!',
                'tanggal' => '2026-05-18',
                'id_petugas' => $petugas->id_petugas
            ]
        );

        // 7. Seed Galeri (Gallery items)
        Galeri::updateOrCreate(
            ['judul' => 'Juara 1 LKS Automobile Technology'],
            [
                'id_petugas' => $petugas->id_petugas,
                'foto' => 'img/piala.jpeg',
                'deskripsi' => 'Siswa kami berhasil memboyong medali emas Lomba Kompetensi Siswa (LKS) Automobile Technology tingkat provinsi.',
                'tanggal_kegiatan' => '2026-05-10'
            ]
        );

        Galeri::updateOrCreate(
            ['judul' => 'Fasilitas Ruang Kelas Industri'],
            [
                'id_petugas' => $petugas->id_petugas,
                'foto' => 'img/kelas_industri.jpeg',
                'deskripsi' => 'Ruang kelas dan peralatan praktik modern berstandar industri otomotif skala nasional.',
                'tanggal_kegiatan' => '2026-05-12'
            ]
        );

        Galeri::updateOrCreate(
            ['judul' => 'Praktik Spooring Balancing Mobil'],
            [
                'id_petugas' => $petugas->id_petugas,
                'foto' => 'img/mobil.jpeg',
                'deskripsi' => 'Siswa mempelajari kalibrasi bodi dan roda menggunakan alat penyeimbang roda komputer terkini.',
                'tanggal_kegiatan' => '2026-05-14'
            ]
        );

        Galeri::updateOrCreate(
            ['judul' => 'Pemberkasan PKL Industri Mitra'],
            [
                'id_petugas' => $petugas->id_petugas,
                'foto' => 'img/pkl.jpeg',
                'deskripsi' => 'Siswa bersiap diterjunkan langsung ke industri-industri otomotif ternama mitra sekolah.',
                'tanggal_kegiatan' => '2026-05-16'
            ]
        );
    }
}
