<?php

return [
	
	'models' => [
		
		/*
         * When using the "HasPermissions" trait from this package, we need to know which
         * Eloquent model should be used to retrieve your permissions. Of course, it
         * is often just the "Permission" model but you may use whatever you like.
         *
         * The model you want to use as a Permission model needs to implement the
         * `Spatie\Permission\Contracts\Permission` contract.
         */
		
		'permission' => App\Models\Permission::class,
		
		/*
         * When using the "HasRoles" trait from this package, we need to know which
         * Eloquent model should be used to retrieve your roles. Of course, it
         * is often just the "Role" model but you may use whatever you like.
         *
         * The model you want to use as a Role model needs to implement the
         * `Spatie\Permission\Contracts\Role` contract.
         */
		
		'role' => App\Models\Role::class,
	
	],
	
	'table_names' => [
		
		/*
		 * The table that your application uses for users. This table's model will
		 * be using the "HasRoles" and "HasPermissions" traits.
		 */
		
		'users' => 'users',
		
		/*
         * When using the "HasRoles" trait from this package, we need to know which
         * table should be used to retrieve your roles. We have chosen a basic
         * default value but you may easily change it to any table you like.
         */
		
		'roles' => 'roles',
		
		/*
         * When using the "HasPermissions" trait from this package, we need to know which
         * table should be used to retrieve your permissions. We have chosen a basic
         * default value but you may easily change it to any table you like.
         */
		
		'permissions' => 'permissions',
		
		/*
         * When using the "HasPermissions" trait from this package, we need to know which
         * table should be used to retrieve your models permissions. We have chosen a
         * basic default value but you may easily change it to any table you like.
         */
		
		'model_has_permissions' => 'model_has_permissions',
		
		/*
         * When using the "HasRoles" trait from this package, we need to know which
         * table should be used to retrieve your models roles. We have chosen a
         * basic default value but you may easily change it to any table you like.
         */
		
		'model_has_roles' => 'model_has_roles',
		
		/*
         * When using the "HasRoles" trait from this package, we need to know which
         * table should be used to retrieve your roles permissions. We have chosen a
         * basic default value but you may easily change it to any table you like.
         */
		
		'role_has_permissions' => 'role_has_permissions',
	],
	
	'column_names' => [
		
		/*
		 * Change this if you want to name the related model primary key other than
		 * `model_id`.
		 *
		 * For example, this would be nice if your primary keys are all UUIDs. In
		 * that case, name this `model_uuid`.
		 */
		
		'model_morph_key' => 'model_id',
	],
	
	/*
     * When set to true, the required permission/role names are added to the exception
     * message. This could be considered an information leak in some contexts, so
     * the default setting is false here for optimum safety.
     */
	
	'display_permission_in_exception' => false,
	
	'cache' => [
		
		/*
		 * By default all permissions are cached for 24 hours to speed up performance.
		 * When permissions or roles are updated the cache is flushed automatically.
		 */
		
		'expiration_time' => \DateInterval::createFromDateString('24 hours'),
		
		/*
		 * The cache key used to store all permissions.
		 */
		
		'key' => 'spatie.permission.cache',
		
		/*
		 * When checking for a permission against a model by passing a Permission
		 * instance to the check, this key determines what attribute on the
		 * Permissions model is used to cache against.
		 *
		 * Ideally, this should match your preferred way of checking permissions, eg:
		 * `$user->can('view-posts')` would be 'name'.
		 */
		
		'model_key' => 'name',
		
		/*
		 * You may optionally indicate a specific cache driver to use for permission and
		 * role caching using any of the `store` drivers listed in the cache.php config
		 * file. Using 'default' here means to use the `default` set in cache.php.
		 */
		
		'store' => 'default',
	],
];
