<?php

return [
	'flash_bag' => [
		'class' => \Easymailing\App\Core\Transient\FlashBag::class,
		'arguments' => [
		],
	],
	'config_repository' => [
		'class' => \Easymailing\App\Repository\ConfigRepository::class,
		'arguments' => [
			'parameter_bag',
			'hydrator',
		],
	],
	'api_client' => [
		'class' => \Easymailing\App\Api\Client::class,
		'arguments' => [
			'parameter_bag',
			'config_repository',
			'hydrator',
			'log_manager'
		],
	],
	'hydrator' => [
		'class' => \Easymailing\App\Api\Hydrator::class,
		'arguments' => [],
	],
	'customer_hooks' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Hooks\CustomerHooks::class,
		'arguments' => [
			'config_repository',
			'customer_service',
			'flash_bag',
			'log_manager',
		],
	],
	'product_hooks' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Hooks\ProductHooks::class,
		'arguments' => [
			'config_repository',
			'api_client',
			'category_hooks',
			'flash_bag',
			'log_manager',
		],
	],
	'category_hooks' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Hooks\CategoryHooks::class,
		'arguments' => [
			'config_repository',
			'api_client',
			'flash_bag',
			'log_manager',
		],
	],
	'campaign_hash_hook' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Hooks\CampaignHashHook::class,
		'arguments' => [
		],
	],
	'cart_rebuild_hook' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Hooks\CartRebuildHook::class,
		'arguments' => [
			'log_manager',
		],
	],
	'order_hooks' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Hooks\OrderHooks::class,
		'arguments' => [
			'config_repository',
			'api_client',
			'product_hooks',
			'customer_service',
			'order_status_handler',
			'order_validator',
			'flash_bag',
			'log_manager',
		],
	],
	'cart_hooks' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Hooks\CartHooks::class,
		'arguments' => [
			'config_repository',
			'api_client',
			'product_hooks',
			'log_manager',
			'customer_service',
		],
	],
	'product_widgets' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Widgets\ProductWidgets::class,
		'arguments' => [
			'synchronization_view_handler'
		],
	],
	'category_widgets' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Widgets\CategoryWidgets::class,
		'arguments' => [
			'synchronization_view_handler'
		],
	],
	'customer_widgets' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Widgets\CustomerWidgets::class,
		'arguments' => [
			'synchronization_view_handler'
		],
	],
	'order_widgets' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Widgets\OrderWidgets::class,
		'arguments' => [
			'synchronization_view_handler'
		],
	],
	'synchronization_action' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Widgets\SynchronizationAction::class,
	],
	'log_manager' => [
		'class' => \Easymailing\App\Core\Log\LogManager::class,
		'arguments' => [
			'config_repository',
		],
	],
	'customer_service' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Service\CustomerService::class,
		'arguments' => [
			'config_repository',
			'api_client',
		],
	],
	'synchronization_hook' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Hooks\SynchronizationHook::class,
		'arguments' => [
			'api_client',
			'order_batch_operations',
			'store_batch_operations',
			'customer_batch_operations',
			'category_batch_operations',
			'product_batch_operations',
			'batch_enqueue_manager',
			'batch_result_process_manager',
			'log_manager',
		],
	],
	'order_batch_operations' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Batch\OrderBatchOperations::class,
		'arguments' => [
			'config_repository',
			'customer_service',
			'order_validator',
			'log_manager',
		],
	],
	'store_batch_operations' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Batch\StoresBatchOperations::class,
		'arguments' => [
			'config_repository',
			'api_client',
			'log_manager',
		],
	],
	'customer_batch_operations' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Batch\CustomerBatchOperations::class,
		'arguments' => [
			'config_repository',
			'log_manager',
		],
	],
	'category_batch_operations' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Batch\CategoryBatchOperations::class,
		'arguments' => [
			'config_repository',
			'log_manager',
		],
	],
	'product_batch_operations' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Batch\ProductBatchOperations::class,
		'arguments' => [
			'config_repository',
			'log_manager',
		],
	],
	'batch_enqueue_manager' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Service\BatchEnqueueManager::class,
		'arguments' => [
			'log_manager',
			'api_client',
		],
	],
	'batch_result_process_manager' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Service\BatchResultProcessManager::class,
		'arguments' => [
			'api_client',
			'log_manager',
		],
	],
	'synchronization_view_handler' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Service\SynchronizationViewHandler::class,
		'arguments' => [

		],
	],
	'failed_synchronization_cleaner' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Service\FailedSynchronizationCleaner::class,
		'arguments' => [
		],
	],
	'delete_hook' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Hooks\DeleteHook::class,
		'arguments' => [
			'config_repository',
			'api_client',
			'log_manager',
		],
	],
	'order_status_handler' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Service\OrderStatusHandler::class,
		'arguments' => [
			'config_repository',
			'api_client',
			'log_manager',
		],
	],
	'order_validator' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Service\OrderValidator::class,
		'arguments' => [
		],
	],
	'block_checkout_fields_extension' => [
		'class' => \Easymailing\App\Core\Provider\Woocommerce\Blocks\BlockCheckoutFieldsExtension::class,
		'arguments' => [
			'customer_hooks',
			'customer_service',
			'log_manager',
		],
	]


];
