<?php

use Laravel\Telescope\Watchers;
use Laravel\Telescope\Http\Middleware\Authorize;

return [

	'path' => 'telescope',

	/*
	|--------------------------------------------------------------------------
	| Telescope Storage Driver
	|--------------------------------------------------------------------------
	|
	| This configuration options determines the storage driver that will
	| be used to store Telescope's data. In addition, you may set any
	| custom options as needed by the particular driver you choose.
	|
	*/

	'driver' => env('TELESCOPE_DRIVER', 'database'),

	'storage' => [
		'database' => [
			'connection' => env('DB_CONNECTION', 'mysql'),
		],
	],

	/*
	|--------------------------------------------------------------------------
	| Telescope Master Switch
	|--------------------------------------------------------------------------
	|
	| This option may be used to disable all Telescope watchers regardless
	| of their individual configuration, which simply provides a single
	| and convenient way to enable or disable Telescope data storage.
	|
	*/

	'enabled' => env('TELESCOPE_ENABLED', false),

	/*
	|--------------------------------------------------------------------------
	| Telescope Route Middleware
	|--------------------------------------------------------------------------
	|
	| These middleware will be assigned to every Telescope route, giving you
	| the chance to add your own middleware to this list or change any of
	| the existing middleware. Or, you can simply stick with this list.
	|
	*/

	'middleware' => [
		'web',
		Authorize::class,
	],

	/*
	|--------------------------------------------------------------------------
	| Ignored Paths & Commands
	|--------------------------------------------------------------------------
	|
	| The following array lists the URI paths and Artisan commands that will
	| not be watched by Telescope. In addition to this list, some Laravel
	| commands, like migrations and queue commands, are always ignored.
	|
	*/

	'ignore_paths' => [
		'js*',
		'i*'
	],

	'ignore_commands' => [
		//
	],

	/*
	|--------------------------------------------------------------------------
	| Telescope Watchers
	|--------------------------------------------------------------------------
	|
	| The following array lists the "watchers" that will be registered with
	| Telescope. The watchers gather the application's profile data when
	| a request or task is executed. Feel free to customize this list.
	|
	*/

	'watchers' => [
		Watchers\CacheWatcher::class => env('TELESCOPE_CACHE_WATCHER', true),

		Watchers\CommandWatcher::class => [
			'enabled' => env('TELESCOPE_COMMAND_WATCHER', true),
			'ignore' => [],
		],

		Watchers\DumpWatcher::class => env('TELESCOPE_DUMP_WATCHER', true),
		Watchers\EventWatcher::class => env('TELESCOPE_EVENT_WATCHER', true),
		Watchers\ExceptionWatcher::class => env('TELESCOPE_EXCEPTION_WATCHER', true),
		Watchers\JobWatcher::class => env('TELESCOPE_JOB_WATCHER', true),
		Watchers\LogWatcher::class => env('TELESCOPE_LOG_WATCHER', true),
		Watchers\MailWatcher::class => env('TELESCOPE_MAIL_WATCHER', true),
		Watchers\ClientRequestWatcher::class =>true,

		Watchers\ModelWatcher::class => [
			'enabled' => env('TELESCOPE_MODEL_WATCHER', true),
			'events' => ['eloquent.*'],
		],

		Watchers\NotificationWatcher::class => env('TELESCOPE_NOTIFICATION_WATCHER', true),

		Watchers\QueryWatcher::class => [
			'enabled' => env('TELESCOPE_QUERY_WATCHER', true),
			'ignore_packages' => true,
			'slow' => 100,
		],

		Watchers\RedisWatcher::class => env('TELESCOPE_REDIS_WATCHER', true),

		Watchers\RequestWatcher::class => [
			'enabled' => env('TELESCOPE_REQUEST_WATCHER', true),
			'size_limit' => env('TELESCOPE_RESPONSE_SIZE_LIMIT', 64),
		],

		Watchers\GateWatcher::class => [
			'enabled' => env('TELESCOPE_GATE_WATCHER', true),
			'ignore_abilities' => [],
			'ignore_packages' => true,
		],

		Watchers\ScheduleWatcher::class => env('TELESCOPE_SCHEDULE_WATCHER', true),
	],
];
