<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->_clearProjectTables();
        $this->call([
            BackendPermissionsGroupsTableSeeder::class,
            BackendPermissionsTableSeeder::class,
            BackendUserTypesTableSeeder::class,
            BackendUsersTableSeeder::class,
            BackendUsersPermissionsTableSeeder::class,
            // For this project
            SimpleLinksTableSeeder::class,
            BenefitsTableSeeder::class,
            KeyMessagesTableSeeder::class,
            PhrasesTableSeeder::class,
            ServiceSolutionsTableSeeder::class,
            ClientLogosTableSeeder::class,
            OpenPositionDetailsTableSeeder::class,
            OpenPositionSpecsTableSeeder::class,
            BlocksTableSeeder::class,
            EntriesTableSeeder::class,
            EntryBlockTableSeeder::class,
            OpenPositionsTableSeeder::class,
            OpenPositionBlockTableSeeder::class,
            ProjectsTableSeeder::class,
            ProjectBlockTableSeeder::class,
            TeamMembersTableSeeder::class,
            BlogArticlesTableSeeder::class,
            BlogArticleBlockTableSeeder::class,
            BlockSimpleLinkTableSeeder::class,
            BlockBenefitsTableSeeder::class,
            BlockKeyMessageTableSeeder::class,
            BlockPhraseTableSeeder::class,
            BlockServiceSolutionTableSeeder::class,
            BlockClientLogoTableSeeder::class,
            BlockTeamMemberTableSeeder::class,
            OpenPositionOpDetailTableSeeder::class,
            OpenPositionOpSpecTableSeeder::class,
            MenusTableSeeder::class,
            MenuItemsTableSeeder::class,
            SocialMediasTableSeeder::class,
            FooterTableSeeder::class,
            FooterSocialMediaTableSeeder::class,
            ProjectDetailsTableSeeder::class,
            BlockMediaItemsTableSeeder::class,
            BlockBlocksTableSeeder::class,
            BlockProjectDetailTableSeeder::class,
            LoaderCollectionTableSeeder::class,
            LoaderCollectionMediaItemsTableSeeder::class
        ]);
    }

    private function _clearProjectTables()
    {
        DB::table('block_simple_link')->delete();
        DB::table('block_team_member')->delete();
        DB::table('block_benefit')->delete();
        DB::table('block_key_message')->delete();
        DB::table('block_project_detail')->delete();
        DB::table('block_phrase')->delete();
        DB::table('block_service_solution')->delete();
        DB::table('block_media_item')->delete();
        DB::table('block_block')->delete();
        DB::table('open_position_op_detail')->delete();
        DB::table('open_position_op_spec')->delete();
        DB::table('entry_block')->delete();
        DB::table('open_position_block')->delete();
        DB::table('project_block')->delete();
        DB::table('blog_article_block')->delete();
        DB::table('website_objects_lang')->delete();
        DB::table('website_objects')->delete();
        DB::table('simple_link_languages')->delete();
        DB::table('simple_links')->delete();
        DB::table('benefit_languages')->delete();
        DB::table('benefits')->delete();
        DB::table('key_message_languages')->delete();
        DB::table('key_messages')->delete();
        DB::table('project_detail_languages')->delete();
        DB::table('project_details')->delete();
        DB::table('phrase_languages')->delete();
        DB::table('phrases')->delete();
        DB::table('open_position_detail_languages')->delete();
        DB::table('open_position_details')->delete();
        DB::table('open_position_spec_languages')->delete();
        DB::table('open_position_specs')->delete();
        DB::table('service_solution_languages')->delete();
        DB::table('service_solutions')->delete();
        DB::table('client_logo_languages')->delete();
        DB::table('client_logos')->delete();
        DB::table('open_position_languages')->delete();
        DB::table('open_positions')->delete();
        DB::table('project_languages')->delete();
        DB::table('projects')->delete();
        DB::table('team_members')->delete();
        DB::table('blog_article_languages')->delete();
        DB::table('blog_articles')->delete();
        DB::table('block_languages')->delete();
        DB::table('blocks')->delete();
        DB::table('entries_lang')->delete();
        DB::table('entries')->delete();
        DB::table('menu_items_lang')->delete();
        DB::table('menu_items')->delete();
        DB::table('media_items')->delete();
        DB::table('footer_social_media')->delete();
        DB::table('social_media_languages')->delete();
        DB::table('social_medias')->delete();
        DB::table('footer_languages')->delete();
        DB::table('footer')->delete();
        DB::table('loader_collection_media_item')->delete();
        DB::table('loader_collection_languages')->delete();
        DB::table('loader_collection')->delete();

    }
}
