feat(seeder): membuat seeder untuk parfum, produk dan botol dan mendaftarkannya ke DatabaseSeeder
This commit is contained in:
parent
db35517288
commit
7224f722b9
42
database/seeders/BottleSeeder.php
Normal file
42
database/seeders/BottleSeeder.php
Normal file
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Bottle;
|
||||
use App\Models\Outlet;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class BottleSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$bottles = [
|
||||
['name' => 'Botol Kaca 30ml Elegant', 'size' => 30],
|
||||
['name' => 'Botol Kaca 50ml Premium', 'size' => 50],
|
||||
['name' => 'Botol Kaca 100ml Classic', 'size' => 100],
|
||||
['name' => 'Botol Plastik 30ml Travel', 'size' => 30],
|
||||
['name' => 'Botol Aluminium 100ml Refill', 'size' => 100],
|
||||
['name' => 'Botol Roll On 6ml Mini', 'size' => 6],
|
||||
['name' => 'Botol Spray 15ml Slim', 'size' => 15],
|
||||
['name' => 'Botol Kaca 250ml Jumbo', 'size' => 250],
|
||||
['name' => 'Botol Kristal 50ml Luxury', 'size' => 50],
|
||||
['name' => 'Botol Refill 500ml Bulk', 'size' => 500],
|
||||
];
|
||||
|
||||
foreach ($bottles as $index => $item) {
|
||||
$slug = Str::slug($item['name']);
|
||||
|
||||
$bottle = Bottle::create([
|
||||
'name' => $item['name'],
|
||||
'slug' => $slug,
|
||||
'size' => $item['size'],
|
||||
'cost_price' => fake()->numberBetween(2000, 20000),
|
||||
'sale_price' => fake()->numberBetween(10000, 50000),
|
||||
'description' => fake()->sentence(10),
|
||||
]);
|
||||
|
||||
$bottle->outlets()->attach(Outlet::all()->pluck('id')->toArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -17,6 +17,9 @@ public function run(): void
|
||||
CategorySeeder::class,
|
||||
BrandSeeder::class,
|
||||
CustomerSeeder::class,
|
||||
PerfumeSeeder::class,
|
||||
ProductSeeder::class,
|
||||
BottleSeeder::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
55
database/seeders/PerfumeSeeder.php
Normal file
55
database/seeders/PerfumeSeeder.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Enums\Concentration;
|
||||
use App\Models\Brand;
|
||||
use App\Models\Category;
|
||||
use App\Models\Outlet;
|
||||
use App\Models\Perfume;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class PerfumeSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$perfumeNames = [
|
||||
'Amber Woods',
|
||||
'Velvet Oud',
|
||||
'Citrus Bloom',
|
||||
'Midnight Musk',
|
||||
'Ocean Whisper',
|
||||
'Rose Eclipse',
|
||||
'Golden Sand',
|
||||
'Spiced Leather',
|
||||
'Vanilla Sky',
|
||||
'Emerald Breeze',
|
||||
];
|
||||
|
||||
$brands = Brand::orderBy('sort_order')->get();
|
||||
|
||||
foreach ($perfumeNames as $index => $name) {
|
||||
$brand = $brands[$index % $brands->count()];
|
||||
$slug = Str::slug($name);
|
||||
$sku = Str::upper(Str::random(3)).'-'.str_pad($index + 1, 4, '0', STR_PAD_LEFT);
|
||||
|
||||
$perfume = Perfume::create([
|
||||
'brand_id' => $brand->id,
|
||||
'name' => $name,
|
||||
'slug' => $slug,
|
||||
'sku' => $sku,
|
||||
'concentration' => fake()->randomElement(Concentration::values()),
|
||||
'cost_price' => fake()->numberBetween(500, 1100),
|
||||
'sale_price' => fake()->numberBetween(2500, 5000),
|
||||
'base_notes' => fake()->optional()->randomElement(['Amber', 'Musk', 'Vanilla', 'Sandalwood', 'Leather']),
|
||||
'middle_notes' => fake()->optional()->randomElement(['Rose', 'Jasmine', 'Patchouli', 'Cedarwood', 'Iris']),
|
||||
'top_notes' => fake()->optional()->randomElement(['Citrus', 'Bergamot', 'Pepper', 'Mint', 'Lavender']),
|
||||
'description' => fake()->optional()->sentence(10),
|
||||
]);
|
||||
|
||||
$perfume->categories()->attach(fake()->randomElements(Category::all()->pluck('id')->toArray(), 2));
|
||||
$perfume->outlets()->attach(Outlet::all()->pluck('id')->toArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
43
database/seeders/ProductSeeder.php
Normal file
43
database/seeders/ProductSeeder.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Outlet;
|
||||
use App\Models\Product;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class ProductSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$products = [
|
||||
'Kurma Ajwa',
|
||||
'Kurma Medjool',
|
||||
'Siwak Al Miswak',
|
||||
'Minyak Wangi Kasturi',
|
||||
'Tasbih Kayu Cendana',
|
||||
'Sorban Putih Premium',
|
||||
'Kitab Riyadhus Shalihin',
|
||||
'Kitab Arbain Nawawi',
|
||||
'Kapsul Habbatussauda',
|
||||
'Air Zamzam 1L',
|
||||
];
|
||||
|
||||
foreach ($products as $index => $name) {
|
||||
$slug = Str::slug($name);
|
||||
$sku = Str::upper(Str::random(3)).'-'.str_pad($index + 1, 4, '0', STR_PAD_LEFT);
|
||||
|
||||
$product = Product::create([
|
||||
'name' => $name,
|
||||
'slug' => $slug,
|
||||
'sku' => $sku,
|
||||
'cost_price' => fake()->numberBetween(15000, 80000),
|
||||
'sale_price' => fake()->numberBetween(50000, 200000),
|
||||
'description' => fake()->sentence(12),
|
||||
]);
|
||||
|
||||
$product->outlets()->attach(Outlet::all()->pluck('id')->toArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user