<?php

namespace Database\Seeders;

use App\Models\Engineer;
use App\Models\Firm;
use App\Models\Project;
use App\Models\Service;
use App\Nova\PayoutRequest;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        Project::disableSearchSyncing();
        Service::disableSearchSyncing();
        Engineer::disableSearchSyncing();
        Firm::disableSearchSyncing();
        $this->call([
            MuhandisinsProfitSeeder::class,
            HomePageContentSeeder::class,
            PrivacyTermsSectionSeeder::class,
            NotificationMessageSeeder::class,
            AboutPageContentSeeder::class,
            UsersSeeder::class,
            CategorySeeder::class,
            LanguageProficiencySeeder::class,
            LanguageSeeder::class,
            CurrencySeeder::class,
            LevelOfExperienceSeeder::class,
            SkillSeeder::class,
            ProposalStatusSeeder::class,
            FirmTypeSeeder::class,
            FirmSizeSeeder::class,
            EngineerSeeder::class,
//            ExperienceSeeder::class,
//            EducationSeeder::class,
//            CertificateSeeder::class,
//            PortfolioProjectSeeder::class,
//            PortfolioImageSeeder::class,
//            LocationSeeder::class,
//            ServiceSeeder::class,
//            ServiceImageSeeder::class,
//            ServiceTierOptionSeeder::class,
//            ServiceOrderSeeder::class,
            FirmSeeder::class,
            ProjectSeeder::class,
            PermissionSeeder::class,
//            PayoutRequestSeeder::class,
            //Remove this on launch
            TestAccountSeeder::class,
            ExchangeRateSeeder::class,
            ConfigurationSeeder::class,

        ]);
        Project::all()->searchable();
        Service::all()->searchable();
        Engineer::all()->searchable();
        Firm::all()->searchable();
        Project::enableSearchSyncing();
        Service::enableSearchSyncing();
        Engineer::enableSearchSyncing();
        Firm::enableSearchSyncing();
    }
}
