<?php

namespace App\Traits;

use Illuminate\Support\Facades\Auth;

use App\Models\User;

/**
 * Add a ScopeAuthorised to an Eloquent Model
 * This will help limit the scope of accounts that a user can see.
 */
trait ScopeAccountUserAuthorised
{
	/**
	 * Only query records that the user is authorised to see
	 */
	public function scopeAccountUserAuthorised($query,?string $table=NULL,?User $uo=NULL)
	{
		if (! $uo)
			$uo = Auth::user();

		if (! $table)
			$table = $this->getTable();

		return $query
			->whereIN($table.'.account_id',$uo->accounts_all->pluck('id'));
	}
}