<?php

namespace App\Providers;

use Intuit\Traits\IntuitSocialite;
use Laravel\Passport\Passport;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
	use IntuitSocialite;

	/**
	 * The policy mappings for the application.
	 *
	 * @var array
	 */
	protected $policies = [
		'App\Model' => 'App\Policies\ModelPolicy',
	];

	/**
	 * Register any authentication / authorization services.
	 *
	 * @return void
	 */
	public function boot()
	{
		$this->registerPolicies();
		$this->bootIntuitSocialite();
		Passport::routes();
		// Passport::enableImplicitGrant();

		Gate::define('wholesaler', function ($user) {
			return $user->isWholesaler();
		});

		Gate::define('reseller', function ($user) {
			return $user->isReseller();
		});
	}
}