<?php declare(strict_types=1);

/*
 * This file is part of the Rapsys TreeBundle package.
 *
 * (c) Raphaël Gertz <symfony@rapsys.eu>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Rapsys\TreeBundle\Fixture;

use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;

use Rapsys\PackBundle\Util\SluggerUtil;
use Rapsys\TreeBundle\Entity\Album;
use Rapsys\TreeBundle\RapsysTreeBundle;

use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * {@inheritdoc}
 */
class TreeFixture extends Fixture {
	/**
	 * Config array
	 */
	private array $config;

	/**
	 * Air fixtures constructor
	 */
	public function __construct(private ContainerInterface $container, private SluggerUtil $slugger) {
		//Retrieve config
		$this->config = $container->getParameter(RapsysTreeBundle::getAlias());
	}

	/**
	 * {@inheritDoc}
	 */
	public function load(ObjectManager $manager) {
		//Album tree
		$albumTree = [
		];

		//Create titles
		$albums = [];
		foreach($albumTree as $albumTitle => $albumPath) {
			$album = new Album($albumPath, $this->slugger->slug($albumTitle), $albumTitle);
			$manager->persist($album);
			$albums[$albumTitle] = $album;
			unset($album);
		}

		//Flush to get the ids
		$manager->flush();
	}
}