<?php

namespace Database\Seeders;

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

use App\Models\{Domain,Software,System,Zone};

class InitialSetupSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
		DB::table('protocols')->insert([
			'name'=>'BINKP',
			'port'=>24554,
			'active'=>TRUE,
		]);
		DB::table('protocols')->insert([
			'name'=>'EMSI',
			'port'=>60179,
			'active'=>TRUE,
		]);
		DB::table('software')->insert([
			'name'=>'Custom',
			'active'=>TRUE,
			'type'=>Software::SOFTWARE_MAILER,
		]);

		$so = new System;
		$so->forceFill([
			'name'=>'Clearing Houz - Dev',
			'sysop'=>'System Sysop',
			'location'=>'Melbourne, AU',
			'active'=>TRUE,
		]);
		$so->save();

		$do = new Domain;
		$do->forceFill([
			'name'=>'private',
			'active'=>TRUE,
			'public'=>TRUE,
			'notes'=>'PrivateNet: Internal Testing Network'
		]);
		$do->save();

		$zo = new Zone;
		$zo->forceFill([
			'zone_id'=>'10',
			'default'=>TRUE,
			'active'=>TRUE,
			'system_id'=>$so->id,
		]);
		$do->zones()->save($zo);

		DB::table('setups')->insert([
			'system_id'=>$so->id,
			'zmodem'=>0,
			'emsi_protocols'=>0,
			'binkp'=>0,
			'protocols'=>0,
			'permissions'=>0,
			'options'=>0,
		]);

		DB::table('users')->insert([
			'name'=>'Deon George',
			'email'=>'deon@leenooks.net',
			'email_verified_at'=>Carbon::now(),
			'admin'=>TRUE,
			'active'=>TRUE,
			'password'=>'$2y$10$bJQDLfxnKrh6o5Sa02MZOukXcLTNQiByXSTJ7fTr.kHMpV2wxbG6.',
		]);

		DB::table('echoareas')->insert([
			'name'=>'-BAD_AREA',
			'description'=>'Inbound invalid echomail',
			'active'=>TRUE,
			'public'=>TRUE,
			'domain_id'=>$do->id,
		]);

		DB::table('fileareas')->insert([
			'name'=>'-BAD_AREA',
			'description'=>'Inbound invalid files',
			'active'=>TRUE,
			'public'=>TRUE,
			'domain_id'=>$do->id,
		]);
	}
}