magento2-docker/app/code/IpSupply/CartToQuote/Setup/InstallSchema.php

165 lines
5.3 KiB
PHP
Executable File

<?php
namespace IpSupply\CartToQuote\Setup;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\DB\Ddl\Table;
class InstallSchema implements \Magento\Framework\Setup\InstallSchemaInterface
{
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
$setup->startSetup();
$connection = $setup->getConnection();
$tableCartItem = $setup->getTable("ip_supply_cart_to_quote_item");
$tableCartHistory = $setup->getTable("ip_supply_cart_to_quote_history");
$tableCartdetail = $setup->getTable("ip_supply_cart_to_quote_detail");
if ($connection->isTableExists($tableCartItem) != true) {
$table = $connection->newTable($tableCartItem)->addColumn(
'id',
Table::TYPE_INTEGER,
null,
['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true]
)->addColumn(
'product_id',
Table::TYPE_INTEGER,
null,
['nullable' => false]
)->addColumn(
'email',
Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => '']
)
->addColumn(
'name',
Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => '']
)->addColumn(
'url',
Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => '']
)->addColumn(
'image',
Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => '']
)->addColumn(
'sku',
Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => '']
)->addColumn(
'qty',
Table::TYPE_INTEGER,
null,
['nullable' => false, 'default' => 0]
)->addColumn(
'customer_id',
Table::TYPE_INTEGER,
null,
['nullable' => false]
)->addColumn(
'price',
Table::TYPE_DECIMAL,
null,
['nullable' => false, 'default' => 0, 'scale'=> 1, 'precision'=> 13]
)
->setOption('charset', 'utf8');
$connection->createTable($table);
}
if ($connection->isTableExists($tableCartHistory) != true) {
$table = $connection->newTable($tableCartHistory)->addColumn(
'id',
Table::TYPE_INTEGER,
null,
['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true]
)->addColumn(
'date',
Table::TYPE_TIMESTAMP,
null,
['nullable' => false, 'default' => 'CURRENT_TIMESTAMP']
)->addColumn(
'items_total',
Table::TYPE_INTEGER,
null,
['nullable' => false]
)->addColumn(
'customer_id',
Table::TYPE_INTEGER,
null,
['nullable' => false]
)
->setOption('charset', 'utf8');
$connection->createTable($table);
}
if ($connection->isTableExists($tableCartdetail) != true) {
$table = $connection->newTable($tableCartdetail)->addColumn(
'id',
Table::TYPE_INTEGER,
null,
['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true]
)->addColumn(
'product_id',
Table::TYPE_INTEGER,
null,
['nullable' => false]
)
->addColumn(
'name',
Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => '']
)->addColumn(
'url',
Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => '']
)->addColumn(
'image',
Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => '']
)->addColumn(
'sku',
Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => '']
)->addColumn(
'qty',
Table::TYPE_INTEGER,
null,
['nullable' => false, 'default' => 0]
)->addColumn(
'customer_id',
Table::TYPE_INTEGER,
null,
['nullable' => false]
)->addColumn(
'price',
Table::TYPE_DECIMAL,
null,
['nullable' => false, 'default' => 0, 'scale'=> 1, 'precision'=> 13]
)->addColumn(
'quote_history_id',
Table::TYPE_INTEGER,
null,
['nullable' => false]
)
->setOption('charset', 'utf8');
$connection->createTable($table);
}
$setup->endSetup();
}
}