<?php

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

class CreateMeetingsTable extends Migration {

	/**
	 * Run the migrations.
	 *
	 * @return void
	 */
	public function up()
	{
        Schema::create('meetings', function (Blueprint $table) {
            // General
            $table->bigIncrements('id');
            $table->unsignedBigInteger('backend_user_id')->nullable();
            $table->foreign('backend_user_id')->references('id')
                ->on('backend_users')->onDelete('SET NULL')->onUpdate('CASCADE');
            $table->nullableTimestamps();

            $table->string('type', 40)->nullable();
            $table->dateTime('start_date')->nullable();
            $table->dateTime('end_date')->nullable();
            $table->string('maps_link', 255)->nullable();

            // Committee
            $table->unsignedBigInteger('committee_id')->nullable();
            $table->foreign('committee_id')->references('id')
                ->on('committees')->onDelete('RESTRICT')->onUpdate('CASCADE');

            // Work Group
            $table->unsignedBigInteger('work_group_id')->nullable();
            $table->foreign('work_group_id')->references('id')
                ->on('work_groups')->onDelete('RESTRICT')->onUpdate('CASCADE');

            // Document
            $table->unsignedBigInteger('agenda_id')->nullable();
            $table->foreign('agenda_id')->references('id')
                ->on('media_items')->onDelete('RESTRICT')->onUpdate('CASCADE');
        });
	}

	/**
	 * Reverse the migrations.
	 *
	 * @return void
	 */
	public function down()
	{
        Schema::dropIfExists('meetings');
	}

}
