<?php declare(strict_types=1);
namespace CoeWishlistSw6;
use CoeWishlistSw6\Core\Content\Wishlist\Aggregate\WishlistNoteDefinition;
use CoeWishlistSw6\Core\Content\Wishlist\Aggregate\WishlistNoteEntity;
use CoeWishlistSw6\Core\Content\Wishlist\WishlistDefinition;
use CoeWishlistSw6\Storefront\Seo\SeoUrlRoute\WishlistSeoUrlRoute;
use Doctrine\DBAL\Connection;
use Shopware\Core\Framework\Plugin;
use Shopware\Core\Framework\Plugin\Context\UninstallContext;
use Shopware\Core\Framework\Plugin\Context\InstallContext;
/**
* Class CoeWishlistSw6
* @package CoeWishlistSw6
* @author Jeffry Block <jeffry.block@codeenterprise.de>
*/
class CoeWishlistSw6 extends Plugin
{
/**
* @param InstallContext $context
* @author Jeffry Block <jeffry.block@codeenterprise.de>
* @throws \Shopware\Core\Framework\DataAbstractionLayer\Exception\InconsistentCriteriaIdsException
*/
public function install(InstallContext $context): void
{
parent::install($context);
}
/**
* @param UninstallContext $context
* @author Jeffry Block <jeffry.block@codeenterprise.de>
*/
public function uninstall(UninstallContext $context): void
{
parent::uninstall($context);
if ($context->keepUserData()) {
return;
}
/** @var Connection $con */
$con = $this->container->get("Doctrine\DBAL\Connection");
$classNames = [
WishlistNoteDefinition::ENTITY_NAME,
WishlistDefinition::ENTITY_NAME,
];
foreach ($classNames as $className) {
$con->executeStatement(\sprintf('DROP TABLE IF EXISTS `%s`', $className));
}
$con->executeStatement(sprintf("DELETE FROM seo_url_template WHERE entity_name='%s'", WishlistDefinition::ENTITY_NAME));
$con->executeStatement(sprintf("DELETE FROM seo_url WHERE route_name='%s'", WishlistSeoUrlRoute::ROUTE_NAME));
}
}