📄 MenuSeeder.php
📁 Path: /home/skhata/new.chandrapharma.com/database/seeders/MenuSeeder.php
📊 Size: 5.12 KB
🔒 Perm: 0644
📝 MIME: text/x-php
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class MenuSeeder extends Seeder
{
public function run(): void
{
// Guard: skip if already seeded
if (DB::table('menus')->exists()) {
$this->command->info(' MenuSeeder: menus already exist, skipping.');
return;
}
// ── Header Menu ──────────────────────────────────────────────────────────
$header = DB::table('menus')->insertGetId([
'name' => 'Main Header',
'location' => 'header',
'description' => 'Primary navigation displayed in the site header',
'is_active' => true,
'created_at' => now(),
'updated_at' => now(),
]);
$headerItems = [
['label' => 'Home', 'url' => '/', 'sort_order' => 1],
['label' => 'Products', 'url' => '/products', 'sort_order' => 2],
['label' => 'Categories', 'url' => '/categories', 'sort_order' => 3],
['label' => 'Pharmacy', 'url' => '/pharmacy', 'sort_order' => 4],
['label' => 'Flash Sales', 'url' => '/flash-sales', 'sort_order' => 5],
['label' => 'Become Vendor', 'url' => '/vendor/apply', 'sort_order' => 6],
];
foreach ($headerItems as $item) {
DB::table('menu_items')->insert([
'menu_id' => $header,
'parent_id' => null,
'label' => $item['label'],
'url' => $item['url'],
'type' => 'custom',
'target' => '_self',
'is_active' => true,
'sort_order' => $item['sort_order'],
'created_at' => now(),
'updated_at' => now(),
]);
}
// ── Footer Links Menu ────────────────────────────────────────────────────
$footer = DB::table('menus')->insertGetId([
'name' => 'Footer Links',
'location' => 'footer',
'description' => 'Quick links displayed in the site footer',
'is_active' => true,
'created_at' => now(),
'updated_at' => now(),
]);
$footerItems = [
['label' => 'About Us', 'url' => '/about', 'sort_order' => 1],
['label' => 'Contact', 'url' => '/contact', 'sort_order' => 2],
['label' => 'Blog', 'url' => '/blog', 'sort_order' => 3],
['label' => 'Track Order', 'url' => '/orders/track','sort_order' => 4],
['label' => 'Vendor Login', 'url' => '/vendor/login','sort_order' => 5],
];
foreach ($footerItems as $item) {
DB::table('menu_items')->insert([
'menu_id' => $footer,
'parent_id' => null,
'label' => $item['label'],
'url' => $item['url'],
'type' => 'custom',
'target' => '_self',
'is_active' => true,
'sort_order' => $item['sort_order'],
'created_at' => now(),
'updated_at' => now(),
]);
}
// ── Footer Legal Menu ────────────────────────────────────────────────────
$footerLegal = DB::table('menus')->insertGetId([
'name' => 'Footer Legal',
'location' => 'footer_legal',
'description' => 'Legal and policy links in the footer bottom bar',
'is_active' => true,
'created_at' => now(),
'updated_at' => now(),
]);
$legalItems = [
['label' => 'Privacy Policy', 'url' => '/privacy-policy', 'sort_order' => 1],
['label' => 'Terms of Service', 'url' => '/terms-of-service', 'sort_order' => 2],
['label' => 'Refund Policy', 'url' => '/refund-policy', 'sort_order' => 3],
['label' => 'Shipping Policy', 'url' => '/shipping-policy', 'sort_order' => 4],
];
foreach ($legalItems as $item) {
DB::table('menu_items')->insert([
'menu_id' => $footerLegal,
'parent_id' => null,
'label' => $item['label'],
'url' => $item['url'],
'type' => 'custom',
'target' => '_self',
'is_active' => true,
'sort_order' => $item['sort_order'],
'created_at' => now(),
'updated_at' => now(),
]);
}
$this->command->info(' Menu seeder: 3 menus with ' .
(count($headerItems) + count($footerItems) + count($legalItems)) . ' items created.');
}
}