<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed order MUST follow the migration dependency graph:
     *   1. Roles & Permissions (spatie) — no FK deps
     *   2. Admin user               — needs roles
     *   3. Categories               — no FK deps (self-referential safe with null parent)
     *   4. (Phase 2) Brands, Vendors, Products, etc.
     */
    public function run(): void
    {
        $this->call([
            RolePermissionSeeder::class,
            AdminUserSeeder::class,
            CategorySeeder::class,
            TherapeuticCategorySeeder::class,
            CouponSeeder::class,
            HomepageSettingsSeeder::class,
            MenuSeeder::class,
        ]);

        $this->command->info('');
        $this->command->info('🚀 STP Ecommerce database seeded successfully.');
        $this->command->info('   Admin panel: /admin');
        $this->command->info('   Login: admin@stpecommerce.com / Admin@1234!');
    }
}
