<?php

namespace BwWinnersGlobalSite;

if ( ! class_exists( __NAMESPACE__ . '\Entities' ) ) {

	class Entities {

		public function __construct( $plugin_helpers ) {

			require_once plugin_dir_path( PLUGIN_PATH ) . 'includes/entities/stores/class-competition-store.php';
			require_once plugin_dir_path( PLUGIN_PATH ) . 'includes/entities/stores/class-brand-store.php';
			require_once plugin_dir_path( PLUGIN_PATH ) . 'includes/entities/stores/class-product-store.php';

			require_once plugin_dir_path( PLUGIN_PATH ) . 'includes/entities/class-entity-cache.php';
			require_once plugin_dir_path( PLUGIN_PATH ) . 'includes/entities/class-entity-store.php';
			require_once plugin_dir_path( PLUGIN_PATH ) . 'includes/entities/class-entity-service.php';


			$competitions = new \BwWinnersGlobalSite\Entities\Competition_Store();
			$brands = new \BwWinnersGlobalSite\Entities\Brand_Store();
			$products = new \BwWinnersGlobalSite\Entities\Product_Store();

			$cache = new \BwWinnersGlobalSite\Entities\Entity_Cache();
			$store = new \BwWinnersGlobalSite\Entities\Entity_Store( $competitions, $brands, $products );
			$service = new \BwWinnersGlobalSite\Entities\Entity_Service( $cache, $store );

			$plugin_helpers->cache = $cache;
			$plugin_helpers->entities = $service;
		}
	}
}
