<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

use App\Models\{Account,Service\Adsl};

class SearchController extends Controller
{
	/**
	 * Show the application dashboard.
	 *
	 * @return \Illuminate\Http\Response
	 */
	public function search(Request $request)
	{
		if (! $request->input('term'))
			return [];

		$result = collect();
		$uo = Auth::user();

		# Look for Account
		foreach (Account::Search($request->input('term'))
			->whereIN('id',$uo->all_accounts()->pluck('id'))
			->orderBy('company')
			->orderBy('last_name')
			->orderBy('first_name')
			->limit(10)->get() as $o)
		{
			$result->push(['label'=>sprintf('A:%s %s',$o->aid,$o->name),'value'=>'/u/account/'.$o->id]);
		}

		# Look for an ADSL/NBN Service
		foreach (Adsl::Search($request->input('term'))
			 ->whereIN('account_id',$uo->all_accounts()->pluck('id'))
			 ->orderBy('service_number')
			 ->limit(10)->get() as $o)
		{
			$result->push(['label'=>sprintf('S:%s (%s)',$o->name,$o->service->sid),'value'=>'/u/service/'.$o->id]);
		}

		return $result;
	}
}