From 60eb58a6cf91f456aa649091c96278b42e37bfea Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Tue, 17 Mar 2026 22:10:16 +0700 Subject: [PATCH] feat: Add seeders for Buku and Kategori with initial data --- app/Http/Middleware/HandleInertiaRequests.php | 29 +--- database/seeders/BukuSeeder.php | 160 ++++++++++++++++++ database/seeders/DatabaseSeeder.php | 15 +- database/seeders/KategoriSeeder.php | 24 +++ 4 files changed, 191 insertions(+), 37 deletions(-) create mode 100644 database/seeders/BukuSeeder.php create mode 100644 database/seeders/KategoriSeeder.php diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php index f03e20d..17d5cd7 100644 --- a/app/Http/Middleware/HandleInertiaRequests.php +++ b/app/Http/Middleware/HandleInertiaRequests.php @@ -7,41 +7,20 @@ use Inertia\Middleware; class HandleInertiaRequests extends Middleware { - /** - * The root template that's loaded on the first page visit. - * - * @see https://inertiajs.com/server-side-setup#root-template - * - * @var string - */ protected $rootView = 'app'; - /** - * Determines the current asset version. - * - * @see https://inertiajs.com/asset-versioning - */ public function version(Request $request): ?string { return parent::version($request); } - /** - * Define the props that are shared by default. - * - * @see https://inertiajs.com/shared-data - * - * @return array - */ public function share(Request $request): array { - return [ - ...parent::share($request), - // + return array_merge(parent::share($request), [ 'flash' => [ - 'success' => fn () => $request->session()->get('success'), - 'error' => fn () => $request->session()->get('error'), + 'success' => fn() => $request->session()->get('success'), + 'error' => fn() => $request->session()->get('error'), ], - ]; + ]); } } diff --git a/database/seeders/BukuSeeder.php b/database/seeders/BukuSeeder.php new file mode 100644 index 0000000..748f5f6 --- /dev/null +++ b/database/seeders/BukuSeeder.php @@ -0,0 +1,160 @@ + 1, + 'judul' => 'Laskar Pelangi', + 'pengarang' => 'Andrea Hirata', + 'penerbit' => 'Bentang Pustaka', + 'tahun_terbit' => 2005, + 'isbn' => '978-979-1227-01-1', + 'stok' => 5, + 'stok_tersedia'=> 5, + 'sinopsis' => 'Kisah persahabatan sepuluh anak kampung Belitung yang penuh semangat dalam menggapai mimpi.', + ], + [ + 'kategori_id' => 1, + 'judul' => 'Bumi Manusia', + 'pengarang' => 'Pramoedya Ananta Toer', + 'penerbit' => 'Hasta Mitra', + 'tahun_terbit' => 1980, + 'isbn' => '978-979-428-615-8', + 'stok' => 4, + 'stok_tersedia'=> 4, + 'sinopsis' => 'Novel pertama dari Tetralogi Buru yang mengisahkan Minke, seorang pribumi terpelajar di era kolonial Belanda.', + ], + [ + 'kategori_id' => 1, + 'judul' => 'Negeri 5 Menara', + 'pengarang' => 'Ahmad Fuadi', + 'penerbit' => 'Gramedia Pustaka Utama', + 'tahun_terbit' => 2009, + 'isbn' => '978-979-22-4854-0', + 'stok' => 3, + 'stok_tersedia'=> 3, + 'sinopsis' => 'Kisah inspiratif enam santri dari pelosok nusantara yang menuntut ilmu di Pondok Madani.', + ], + + // Non-Fiksi (kategori_id: 2) + [ + 'kategori_id' => 2, + 'judul' => 'Sebuah Seni untuk Bersikap Bodo Amat', + 'pengarang' => 'Mark Manson', + 'penerbit' => 'Gramedia Pustaka Utama', + 'tahun_terbit' => 2018, + 'isbn' => '978-602-03-7458-2', + 'stok' => 6, + 'stok_tersedia'=> 6, + 'sinopsis' => 'Pendekatan yang tidak konvensional untuk menjalani kehidupan yang baik dengan fokus pada hal-hal yang benar-benar penting.', + ], + [ + 'kategori_id' => 2, + 'judul' => 'Atomic Habits', + 'pengarang' => 'James Clear', + 'penerbit' => 'Penguin Random House', + 'tahun_terbit' => 2018, + 'isbn' => '978-0-7352-1129-2', + 'stok' => 5, + 'stok_tersedia'=> 5, + 'sinopsis' => 'Panduan praktis tentang cara membangun kebiasaan baik dan menghilangkan kebiasaan buruk.', + ], + + // Sains & Teknologi (kategori_id: 3) + [ + 'kategori_id' => 3, + 'judul' => 'A Brief History of Time', + 'pengarang' => 'Stephen Hawking', + 'penerbit' => 'Bantam Books', + 'tahun_terbit' => 1988, + 'isbn' => '978-0-553-38016-3', + 'stok' => 3, + 'stok_tersedia'=> 3, + 'sinopsis' => 'Penjelasan ilmiah tentang asal usul alam semesta, lubang hitam, dan waktu untuk pembaca umum.', + ], + [ + 'kategori_id' => 3, + 'judul' => 'Clean Code', + 'pengarang' => 'Robert C. Martin', + 'penerbit' => 'Prentice Hall', + 'tahun_terbit' => 2008, + 'isbn' => '978-0-13-235088-4', + 'stok' => 4, + 'stok_tersedia'=> 4, + 'sinopsis' => 'Panduan menulis kode program yang bersih, mudah dibaca, dan mudah dipelihara.', + ], + [ + 'kategori_id' => 3, + 'judul' => 'The Pragmatic Programmer', + 'pengarang' => 'Andrew Hunt & David Thomas', + 'penerbit' => 'Addison-Wesley', + 'tahun_terbit' => 1999, + 'isbn' => '978-0-201-61622-4', + 'stok' => 3, + 'stok_tersedia'=> 3, + 'sinopsis' => 'Panduan klasik untuk menjadi programmer yang lebih efektif dan profesional.', + ], + + // Sejarah (kategori_id: 4) + [ + 'kategori_id' => 4, + 'judul' => 'Sapiens: Riwayat Singkat Umat Manusia', + 'pengarang' => 'Yuval Noah Harari', + 'penerbit' => 'Gramedia Pustaka Utama', + 'tahun_terbit' => 2015, + 'isbn' => '978-602-03-1842-5', + 'stok' => 5, + 'stok_tersedia'=> 5, + 'sinopsis' => 'Narasi besar tentang sejarah manusia dari zaman batu hingga era modern.', + ], + [ + 'kategori_id' => 4, + 'judul' => 'Indonesia Dalam Arus Sejarah', + 'pengarang' => 'Taufik Abdullah', + 'penerbit' => 'Ichtiar Baru van Hoeve', + 'tahun_terbit' => 2012, + 'isbn' => '978-979-9066-95-0', + 'stok' => 4, + 'stok_tersedia'=> 4, + 'sinopsis' => 'Ensiklopedia sejarah Indonesia yang komprehensif dari masa prasejarah hingga reformasi.', + ], + + // Pendidikan (kategori_id: 5) + [ + 'kategori_id' => 5, + 'judul' => 'Matematika Dasar untuk Perguruan Tinggi', + 'pengarang' => 'Purcell & Varberg', + 'penerbit' => 'Erlangga', + 'tahun_terbit' => 2010, + 'isbn' => '978-979-781-234-5', + 'stok' => 8, + 'stok_tersedia'=> 8, + 'sinopsis' => 'Buku teks matematika dasar yang lengkap untuk mahasiswa perguruan tinggi.', + ], + [ + 'kategori_id' => 5, + 'judul' => 'Pengantar Ilmu Komputer', + 'pengarang' => 'Rinaldi Munir', + 'penerbit' => 'Informatika Bandung', + 'tahun_terbit' => 2016, + 'isbn' => '978-602-1514-10-5', + 'stok' => 6, + 'stok_tersedia'=> 6, + 'sinopsis' => 'Buku pengantar ilmu komputer yang cocok untuk mahasiswa semester pertama.', + ], + ]; + + foreach ($bukus as $buku) { + Buku::create($buku); + } + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 6b901f8..d6ba6cb 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -2,24 +2,15 @@ namespace Database\Seeders; -use App\Models\User; -use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { - use WithoutModelEvents; - - /** - * Seed the application's database. - */ public function run(): void { - // User::factory(10)->create(); - - User::factory()->create([ - 'name' => 'Test User', - 'email' => 'test@example.com', + $this->call([ + KategoriSeeder::class, + BukuSeeder::class ]); } } diff --git a/database/seeders/KategoriSeeder.php b/database/seeders/KategoriSeeder.php new file mode 100644 index 0000000..3c861e4 --- /dev/null +++ b/database/seeders/KategoriSeeder.php @@ -0,0 +1,24 @@ + 'Fiksi', 'deskripsi' => 'Buku-buku fiksi dan novel'], + ['nama_kategori' => 'Non-Fiksi', 'deskripsi' => 'Buku berdasarkan fakta'], + ['nama_kategori' => 'Sains & Teknologi', 'deskripsi' => 'Buku ilmu pengetahuan dan teknologi'], + ['nama_kategori' => 'Sejarah', 'deskripsi' => 'Buku sejarah'], + ['nama_kategori' => 'Pendidikan', 'deskripsi' => 'Buku pelajaran dan pendidikan'], + ]; + + foreach ($kategoris as $kategori) { + Kategori::create($kategori); + } + } +}