<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;

class ChangeBlockLinkToMultilanguage extends Migration {

	/**
	 * Run the migrations.
	 *
	 * @return void
	 */
	public function up()
	{
        // Blocks
        Schema::table('block_languages', function (Blueprint $table) {
            $table->json('block_link', 150)->nullable();
        });
        DB::statement("UPDATE block_languages bl INNER JOIN blocks b on bl.block_id = b.id
                            SET bl.block_link = b.block_link");
        Schema::table('blocks', function (Blueprint $table) {
            $table->dropColumn(['block_link']);
        });

        // Benefits
        Schema::table('benefit_languages', function (Blueprint $table) {
            $table->json('link_info', 150)->nullable();
        });
        DB::statement("UPDATE benefit_languages bl INNER JOIN benefits b on bl.benefit_id = b.id
                            SET bl.link_info = b.link_info");
        Schema::table('benefits', function (Blueprint $table) {
            $table->dropColumn(['link_info']);
        });

        // Footer
        Schema::table('footer_languages', function (Blueprint $table) {
            $table->json('legal_link_info', 150)->nullable();
            $table->json('email_contact', 150)->nullable();
            $table->json('phone_contact', 150)->nullable();
        });
        DB::statement("UPDATE footer_languages fl INNER JOIN footer f on fl.footer_id = f.id
                            SET fl.legal_link_info = f.legal_link_info,
                            fl.email_contact = f.email_contact,
                            fl.phone_contact = f.phone_contact;");
        Schema::table('footer', function (Blueprint $table) {
            $table->dropColumn(['legal_link_info', 'email_contact', 'phone_contact']);
        });

        // Open Positions
        Schema::table('open_position_languages', function (Blueprint $table) {
            $table->json('link_info', 150)->nullable();
        });
        DB::statement("UPDATE open_position_languages opl INNER JOIN open_positions op on opl.open_position_id = op.id
                            SET opl.link_info = op.link_info");
        Schema::table('open_positions', function (Blueprint $table) {
            $table->dropColumn(['link_info']);
        });

        // Simple Link
        Schema::table('simple_link_languages', function (Blueprint $table) {
            $table->json('link_info', 150)->nullable();
        });
        DB::statement("UPDATE simple_link_languages sll INNER JOIN simple_links sl on sll.simple_link_id = sl.id
                            SET sll.link_info = sl.link_info");
        Schema::table('simple_links', function (Blueprint $table) {
            $table->dropColumn(['link_info']);
        });

        // Social Media
        Schema::table('social_media_languages', function (Blueprint $table) {
            $table->json('link_info', 150)->nullable();
        });
        DB::statement("UPDATE social_media_languages sml INNER JOIN social_medias sm on sml.social_media_id = sm.id
                            SET sml.link_info = sm.link_info");
        Schema::table('social_medias', function (Blueprint $table) {
            $table->dropColumn(['link_info']);
        });

        // Team Member
        Schema::table('team_member_languages', function (Blueprint $table) {
            $table->json('link_info', 150)->nullable();
        });
        DB::statement("UPDATE team_member_languages tml INNER JOIN team_members tm on tml.team_member_id = tm.id
                            SET tml.link_info = tm.link_info");
        Schema::table('team_members', function (Blueprint $table) {
            $table->dropColumn(['link_info']);
        });
    }

	/**
	 * Reverse the migrations.
	 *
	 * @return void
	 */
	public function down()
	{
	}

}
