| Current Path : /var/www/www.indacotrentino.com/www/app/code/Amasty/Rewards/Setup/ |
| Current File : /var/www/www.indacotrentino.com/www/app/code/Amasty/Rewards/Setup/RecurringData.php |
<?php
/**
* @author Amasty Team
* @copyright Copyright (c) 2023 Amasty (https://www.amasty.com)
* @package Reward Points Base for Magento 2
*/
namespace Amasty\Rewards\Setup;
use Amasty\Base\Setup\SerializedFieldDataConverter;
use Amasty\Rewards\Model\ResourceModel\Rewards;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\App\ProductMetadataInterface;
/**
* Recurring Post-Updates Data script
*/
class RecurringData implements InstallDataInterface
{
/**
* @var SerializedFieldDataConverter
*/
private $fieldDataConverter;
/**
* @var ProductMetadataInterface
*/
private $productMetadata;
public function __construct(
ProductMetadataInterface $productMetadata,
SerializedFieldDataConverter $fieldDataConverter
) {
$this->productMetadata = $productMetadata;
$this->fieldDataConverter = $fieldDataConverter;
}
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
if (version_compare($this->productMetadata->getVersion(), '2.2', '>=')) {
$this->convertSerializedDataToJson($setup);
}
// Should to do after ExpirationDateMigration Data Patch
$this->deleteExpirationIdColumn($setup);
$this->deleteExpirationTable($setup);
}
/**
* Convert metadata from serialized to JSON format:
*
* @param ModuleDataSetupInterface $setup
*
* @return void
*/
public function convertSerializedDataToJson($setup)
{
$this->fieldDataConverter->convertSerializedDataToJson(
$setup->getTable('amasty_rewards_rule'),
'rule_id',
'conditions_serialized'
);
}
/**
* @param ModuleDataSetupInterface $setup
*/
private function deleteExpirationIdColumn(ModuleDataSetupInterface $setup)
{
$setup->getConnection()->dropColumn(
$setup->getTable(Rewards::TABLE_NAME),
'expiration_id'
);
}
/**
* @param ModuleDataSetupInterface $setup
*/
private function deleteExpirationTable(ModuleDataSetupInterface $setup)
{
$setup->getConnection()->dropTable(
$setup->getTable('amasty_rewards_expiration_date')
);
}
}