<?php

namespace Database\Seeders;

// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        $this->call([
            StatusSeeder::class,
        ]);

        if (app()->environment('production')) {
            $this->call([
                PolicySeeder::class,
                PowerSeeder::class,
                SettingSeeder::class,
                RolesTableSeeder::class,
                StaffsTableSeeder::class,
                RegionsTableSeeder::class,
                // PartnersTableSeeder::class,
                // PostsTableSeeder::class,
                // CategoriesTableSeeder::class,
                // SlidersTableSeeder::class,
                SpecialOffersTableSeeder::class,
                PagesTableSeeder::class,
                CurrenciesTableSeeder::class,
                // UserSeeder::class,
                // UsersTableSeeder::class,

                // For testing
                // BrandSeeder::class,
                // ProductSeeder::class,
                CompilationsTableSeeder::class,
                PaymentSystemModelSeeder::class,
                CompanySeeder::class,
                // UsefulInfoSeeder::class,
                // ServiceSeeder::class,
            ]);
        } else {
            $this->call([
                ProblemSeeder::class,
                PolicySeeder::class,
                PowerSeeder::class,
                SettingSeeder::class,
                RolesTableSeeder::class,
                StaffsTableSeeder::class,
                RegionsTableSeeder::class,
                PartnersTableSeeder::class,
                PostsTableSeeder::class,
                CategoriesTableSeeder::class,
                SlidersTableSeeder::class,
                SpecialOffersTableSeeder::class,
                PagesTableSeeder::class,
                CurrenciesTableSeeder::class,
                CompanySeeder::class,
                UserSeeder::class,
                // UsersTableSeeder::class,
                // For testing
                BrandSeeder::class,
                ProductSeeder::class,
                CompilationsTableSeeder::class,
                UsefulInfoSeeder::class,
                ServiceSeeder::class,
                PaymentSystemModelSeeder::class,
            ]);
        }
    }
}
