<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20221228095042 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE attribute_option (id INT AUTO_INCREMENT NOT NULL, product_attribute_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, slug VARCHAR(255) NOT NULL, type_value VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, INDEX IDX_78672EEA3B420C91 (product_attribute_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE attribute_option_product (attribute_option_id INT NOT NULL, product_id INT NOT NULL, INDEX IDX_F6C30A541AE56DE9 (attribute_option_id), INDEX IDX_F6C30A544584665A (product_id), PRIMARY KEY(attribute_option_id, product_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE client (id INT NOT NULL, company_name VARCHAR(255) DEFAULT NULL, company_code VARCHAR(255) DEFAULT NULL, vat_code VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE client_action (id INT AUTO_INCREMENT NOT NULL, action LONGTEXT DEFAULT NULL, user INT DEFAULT NULL, date DATETIME DEFAULT NULL, type VARCHAR(255) DEFAULT NULL, client INT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE delivery (id INT AUTO_INCREMENT NOT NULL, client_id INT DEFAULT NULL, first_name VARCHAR(255) DEFAULT NULL, last_name VARCHAR(255) DEFAULT NULL, address VARCHAR(255) DEFAULT NULL, country VARCHAR(5) DEFAULT NULL, zip_code VARCHAR(50) DEFAULT NULL, company_name VARCHAR(255) DEFAULT NULL, company_code VARCHAR(255) DEFAULT NULL, vat_code VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, phone VARCHAR(255) DEFAULT NULL, phone_country_code VARCHAR(255) DEFAULT NULL, INDEX IDX_3781EC1019EB6921 (client_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE ecommerce_general_settings (id INT AUTO_INCREMENT NOT NULL, currency_type VARCHAR(255) DEFAULT NULL, currency_sign_type VARCHAR(255) DEFAULT NULL, show_currency_sign TINYINT(1) DEFAULT NULL, currency_sign_on_right TINYINT(1) DEFAULT NULL, product_image_placeholder VARCHAR(255) DEFAULT NULL, weight_unit_type VARCHAR(255) DEFAULT NULL, length_unit_type VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE email_template_content (id INT AUTO_INCREMENT NOT NULL, template_name VARCHAR(255) NOT NULL, template_subject VARCHAR(255) NOT NULL, template_content LONGTEXT NOT NULL, template_file VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE general_settings (id INT AUTO_INCREMENT NOT NULL, website_name VARCHAR(255) NOT NULL, is_registration TINYINT(1) NOT NULL, is_maintenance TINYINT(1) NOT NULL, web_time_zone VARCHAR(255) NOT NULL, web_date_format VARCHAR(255) NOT NULL, primary_logo VARCHAR(255) NOT NULL, secondary_logo VARCHAR(255) NOT NULL, login_background_image VARCHAR(255) DEFAULT NULL, favicon_dark VARCHAR(255) DEFAULT NULL, favicon_light VARCHAR(255) DEFAULT NULL, start_of_week TINYINT(1) NOT NULL, number_decimals INT NOT NULL, number_decimal_separator VARCHAR(255) DEFAULT NULL, number_thousands_separator VARCHAR(255) DEFAULT NULL, terms_checkbox VARCHAR(255) DEFAULT NULL, privacy_checkbox VARCHAR(255) DEFAULT NULL, file_upload_limit VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE invoice (id INT AUTO_INCREMENT NOT NULL, status_id INT DEFAULT NULL, client_id INT DEFAULT NULL, purchase_id INT DEFAULT NULL, serial_number VARCHAR(255) DEFAULT NULL, total_amount DOUBLE PRECISION DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, INDEX IDX_906517446BF700BD (status_id), INDEX IDX_9065174419EB6921 (client_id), UNIQUE INDEX UNIQ_90651744558FBEB9 (purchase_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE invoice_action (id INT AUTO_INCREMENT NOT NULL, action LONGTEXT DEFAULT NULL, user INT DEFAULT NULL, date DATETIME DEFAULT NULL, type VARCHAR(255) DEFAULT NULL, invoice INT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE invoice_settings (id INT AUTO_INCREMENT NOT NULL, logo VARCHAR(255) DEFAULT NULL, company_info LONGTEXT DEFAULT NULL, generated_by VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE invoice_status (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, can_delete TINYINT(1) NOT NULL, slug VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE notification (id INT AUTO_INCREMENT NOT NULL, notification_profile_id INT DEFAULT NULL, notification_user_id INT DEFAULT NULL, notification_action VARCHAR(255) NOT NULL, is_seen TINYINT(1) NOT NULL, action_entity_id INT DEFAULT NULL, action_entity_name VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL, INDEX IDX_BF5476CA3788B79A (notification_profile_id), INDEX IDX_BF5476CAB2705922 (notification_user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE notification_profile (id INT AUTO_INCREMENT NOT NULL, notification_name VARCHAR(255) NOT NULL, notification_content LONGTEXT NOT NULL, notification_condition VARCHAR(255) NOT NULL, is_email TINYINT(1) NOT NULL, theme_style VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE notification_profile_role_management (notification_profile_id INT NOT NULL, role_management_id INT NOT NULL, INDEX IDX_94A9F0A33788B79A (notification_profile_id), INDEX IDX_94A9F0A3F24D59D (role_management_id), PRIMARY KEY(notification_profile_id, role_management_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE order_item (id INT AUTO_INCREMENT NOT NULL, purchase_id INT NOT NULL, product_variation_id INT DEFAULT NULL, title VARCHAR(255) NOT NULL, unit_price DOUBLE PRECISION NOT NULL, quantity INT NOT NULL, vat_amount DOUBLE PRECISION NOT NULL, unit_price_after_discount DOUBLE PRECISION DEFAULT NULL, item_type VARCHAR(255) DEFAULT NULL, tax_type INT DEFAULT NULL, variation_id INT DEFAULT NULL, variation_parent_id INT DEFAULT NULL, variation_name VARCHAR(255) DEFAULT NULL, variation_sku VARCHAR(255) DEFAULT NULL, variation_price VARCHAR(255) DEFAULT NULL, variation_quantity VARCHAR(255) DEFAULT NULL, variation_sale_price VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, INDEX IDX_52EA1F09558FBEB9 (purchase_id), INDEX IDX_52EA1F09DC269DB3 (product_variation_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE payment_method (id INT AUTO_INCREMENT NOT NULL, title VARCHAR(255) NOT NULL, is_active TINYINT(1) NOT NULL, project_id VARCHAR(255) DEFAULT NULL, project_password VARCHAR(255) DEFAULT NULL, test_mode TINYINT(1) DEFAULT NULL, live_publishable_key VARCHAR(255) DEFAULT NULL, live_secret_key VARCHAR(255) DEFAULT NULL, test_publishable_key VARCHAR(255) DEFAULT NULL, test_secret_key VARCHAR(255) DEFAULT NULL, recipient_name VARCHAR(255) DEFAULT NULL, account_number VARCHAR(255) DEFAULT NULL, bank_name VARCHAR(255) DEFAULT NULL, bank_code VARCHAR(255) DEFAULT NULL, iban_number VARCHAR(255) DEFAULT NULL, bic_number VARCHAR(255) DEFAULT NULL, swift_number VARCHAR(255) DEFAULT NULL, paypal_email VARCHAR(255) DEFAULT NULL, payment_action VARCHAR(255) DEFAULT NULL, slug VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, slug VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, image VARCHAR(255) DEFAULT NULL, product_type VARCHAR(255) NOT NULL, status VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_attribute (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, slug VARCHAR(255) NOT NULL, status VARCHAR(255) NOT NULL, attribute_type VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_attribute_product_category (product_attribute_id INT NOT NULL, product_category_id INT NOT NULL, INDEX IDX_E9E38C293B420C91 (product_attribute_id), INDEX IDX_E9E38C29BE6903FD (product_category_id), PRIMARY KEY(product_attribute_id, product_category_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_category (id INT AUTO_INCREMENT NOT NULL, parent_category_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, slug VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, image VARCHAR(255) DEFAULT NULL, status VARCHAR(255) NOT NULL, is_visible TINYINT(1) NOT NULL, can_delete TINYINT(1) NOT NULL, sort_id INT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, INDEX IDX_CDFC7356796A8F92 (parent_category_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_category_product (product_category_id INT NOT NULL, product_id INT NOT NULL, INDEX IDX_9A1E202FBE6903FD (product_category_id), INDEX IDX_9A1E202F4584665A (product_id), PRIMARY KEY(product_category_id, product_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_image (id INT AUTO_INCREMENT NOT NULL, product_id INT DEFAULT NULL, image_name VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL, INDEX IDX_64617F034584665A (product_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_tag (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, slug VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, status VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_tag_product (product_tag_id INT NOT NULL, product_id INT NOT NULL, INDEX IDX_4D54B718D8AE22B5 (product_tag_id), INDEX IDX_4D54B7184584665A (product_id), PRIMARY KEY(product_tag_id, product_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_variation (id INT AUTO_INCREMENT NOT NULL, product_id INT DEFAULT NULL, attribute_option_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, image VARCHAR(255) DEFAULT NULL, sku VARCHAR(255) DEFAULT NULL, price DOUBLE PRECISION DEFAULT NULL, quantity INT DEFAULT NULL, sale_price DOUBLE PRECISION DEFAULT NULL, weight DOUBLE PRECISION DEFAULT NULL, height DOUBLE PRECISION DEFAULT NULL, width DOUBLE PRECISION DEFAULT NULL, length DOUBLE PRECISION DEFAULT NULL, is_active TINYINT(1) NOT NULL, download_link VARCHAR(255) DEFAULT NULL, sale_start DATETIME DEFAULT NULL, sale_end DATETIME DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, INDEX IDX_C3B85674584665A (product_id), INDEX IDX_C3B85671AE56DE9 (attribute_option_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_variation_action (id INT AUTO_INCREMENT NOT NULL, product_variation_id INT NOT NULL, amount INT NOT NULL, increase TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, INDEX IDX_22B4AA3EDC269DB3 (product_variation_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_variation_image (id INT AUTO_INCREMENT NOT NULL, variation_id INT DEFAULT NULL, image_name VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL, INDEX IDX_DC26E075182BFD8 (variation_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE purchase (id INT AUTO_INCREMENT NOT NULL, status_id INT DEFAULT NULL, client_id INT DEFAULT NULL, delivery_id INT DEFAULT NULL, comment LONGTEXT DEFAULT NULL, price DOUBLE PRECISION DEFAULT NULL, billing_first_name VARCHAR(255) DEFAULT NULL, billing_address VARCHAR(255) DEFAULT NULL, billing_country VARCHAR(255) DEFAULT NULL, billing_zip_code VARCHAR(255) DEFAULT NULL, billing_company_code VARCHAR(255) DEFAULT NULL, billing_company_name VARCHAR(255) DEFAULT NULL, billing_vat_code VARCHAR(255) DEFAULT NULL, billing_last_name VARCHAR(255) DEFAULT NULL, billing_email VARCHAR(255) DEFAULT NULL, billing_phone VARCHAR(255) DEFAULT NULL, billing_phone_country_code VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, INDEX IDX_6117D13B6BF700BD (status_id), INDEX IDX_6117D13B19EB6921 (client_id), INDEX IDX_6117D13B12136921 (delivery_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE purchase_action (id INT AUTO_INCREMENT NOT NULL, action LONGTEXT DEFAULT NULL, user INT DEFAULT NULL, date DATETIME DEFAULT NULL, type VARCHAR(255) DEFAULT NULL, purchase INT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE purchase_message (id INT AUTO_INCREMENT NOT NULL, created_by_user_id INT DEFAULT NULL, purchase_id INT DEFAULT NULL, message LONGTEXT NOT NULL, is_private TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, INDEX IDX_AD67FA067D182D95 (created_by_user_id), INDEX IDX_AD67FA06558FBEB9 (purchase_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE purchase_status (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, can_delete TINYINT(1) NOT NULL, slug VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE reset_password_request (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, selector VARCHAR(20) NOT NULL, hashed_token VARCHAR(100) NOT NULL, requested_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', expires_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_7CE748AA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE role_management (id INT AUTO_INCREMENT NOT NULL, role_name VARCHAR(255) NOT NULL, route_permissions JSON DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE serial_number (id INT AUTO_INCREMENT NOT NULL, series VARCHAR(255) DEFAULT NULL, next_number INT DEFAULT NULL, series_number_count INT DEFAULT NULL, applies_to VARCHAR(255) DEFAULT NULL, is_default TINYINT(1) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE smtp_settings (id INT AUTO_INCREMENT NOT NULL, provider_name VARCHAR(255) DEFAULT NULL, smtp_username VARCHAR(255) DEFAULT NULL, smtp_password VARCHAR(255) DEFAULT NULL, smtp_access_key VARCHAR(255) DEFAULT NULL, smtp_secret_key VARCHAR(255) DEFAULT NULL, smtp_key VARCHAR(255) DEFAULT NULL, smtp_api_token VARCHAR(255) DEFAULT NULL, smtp_domain VARCHAR(255) DEFAULT NULL, constructed_smtp_string VARCHAR(255) DEFAULT NULL, is_selected TINYINT(1) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE tax_rate (id INT AUTO_INCREMENT NOT NULL, country VARCHAR(255) DEFAULT NULL, rate DOUBLE PRECISION DEFAULT NULL, title VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE transaction (id INT AUTO_INCREMENT NOT NULL, status_id INT DEFAULT NULL, purchase_id INT DEFAULT NULL, method_id INT DEFAULT NULL, amount DOUBLE PRECISION NOT NULL, currency VARCHAR(255) NOT NULL, comment LONGTEXT DEFAULT NULL, provider_id VARCHAR(255) DEFAULT NULL, instrument VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, INDEX IDX_723705D16BF700BD (status_id), INDEX IDX_723705D1558FBEB9 (purchase_id), INDEX IDX_723705D119883967 (method_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE transaction_action (id INT AUTO_INCREMENT NOT NULL, action LONGTEXT DEFAULT NULL, user INT DEFAULT NULL, date DATETIME DEFAULT NULL, type VARCHAR(255) DEFAULT NULL, transaction INT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE transaction_status (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, can_delete TINYINT(1) NOT NULL, slug VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE translation (id INT AUTO_INCREMENT NOT NULL, domain VARCHAR(255) NOT NULL, locale VARCHAR(255) NOT NULL, translation_key VARCHAR(255) NOT NULL, translation LONGTEXT NOT NULL, entity_name VARCHAR(255) DEFAULT NULL, entity_id INT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE user (id INT AUTO_INCREMENT NOT NULL, email VARCHAR(180) NOT NULL, roles JSON NOT NULL, password VARCHAR(255) NOT NULL, is_verified TINYINT(1) NOT NULL, first_name VARCHAR(255) DEFAULT NULL, last_name VARCHAR(255) DEFAULT NULL, is_active TINYINT(1) NOT NULL, privacy_policy TINYINT(1) NOT NULL, terms_conditions TINYINT(1) NOT NULL, newsletter_subscription TINYINT(1) NOT NULL, phone_country_code VARCHAR(255) DEFAULT NULL, phone_no VARCHAR(255) DEFAULT NULL, profile_image VARCHAR(255) DEFAULT NULL, job_position VARCHAR(255) DEFAULT NULL, user_header_color VARCHAR(255) DEFAULT NULL, user_side_nav_dark TINYINT(1) DEFAULT NULL, user_folded_menu TINYINT(1) DEFAULT NULL, route_permissions JSON DEFAULT NULL, locale VARCHAR(255) DEFAULT NULL, comment LONGTEXT DEFAULT NULL, address VARCHAR(255) DEFAULT NULL, country VARCHAR(5) DEFAULT NULL, date_of_birth DATETIME DEFAULT NULL, zip_code VARCHAR(255) DEFAULT NULL, is_locked TINYINT(1) DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, discr VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE user_role_management (user_id INT NOT NULL, role_management_id INT NOT NULL, INDEX IDX_96A693ECA76ED395 (user_id), INDEX IDX_96A693ECF24D59D (role_management_id), PRIMARY KEY(user_id, role_management_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE attribute_option ADD CONSTRAINT FK_78672EEA3B420C91 FOREIGN KEY (product_attribute_id) REFERENCES product_attribute (id)');
$this->addSql('ALTER TABLE attribute_option_product ADD CONSTRAINT FK_F6C30A541AE56DE9 FOREIGN KEY (attribute_option_id) REFERENCES attribute_option (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE attribute_option_product ADD CONSTRAINT FK_F6C30A544584665A FOREIGN KEY (product_id) REFERENCES product (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE client ADD CONSTRAINT FK_C7440455BF396750 FOREIGN KEY (id) REFERENCES user (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE delivery ADD CONSTRAINT FK_3781EC1019EB6921 FOREIGN KEY (client_id) REFERENCES client (id)');
$this->addSql('ALTER TABLE invoice ADD CONSTRAINT FK_906517446BF700BD FOREIGN KEY (status_id) REFERENCES invoice_status (id)');
$this->addSql('ALTER TABLE invoice ADD CONSTRAINT FK_9065174419EB6921 FOREIGN KEY (client_id) REFERENCES client (id)');
$this->addSql('ALTER TABLE invoice ADD CONSTRAINT FK_90651744558FBEB9 FOREIGN KEY (purchase_id) REFERENCES purchase (id)');
$this->addSql('ALTER TABLE notification ADD CONSTRAINT FK_BF5476CA3788B79A FOREIGN KEY (notification_profile_id) REFERENCES notification_profile (id)');
$this->addSql('ALTER TABLE notification ADD CONSTRAINT FK_BF5476CAB2705922 FOREIGN KEY (notification_user_id) REFERENCES user (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE notification_profile_role_management ADD CONSTRAINT FK_94A9F0A33788B79A FOREIGN KEY (notification_profile_id) REFERENCES notification_profile (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE notification_profile_role_management ADD CONSTRAINT FK_94A9F0A3F24D59D FOREIGN KEY (role_management_id) REFERENCES role_management (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE order_item ADD CONSTRAINT FK_52EA1F09558FBEB9 FOREIGN KEY (purchase_id) REFERENCES purchase (id)');
$this->addSql('ALTER TABLE order_item ADD CONSTRAINT FK_52EA1F09DC269DB3 FOREIGN KEY (product_variation_id) REFERENCES product_variation (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE product_attribute_product_category ADD CONSTRAINT FK_E9E38C293B420C91 FOREIGN KEY (product_attribute_id) REFERENCES product_attribute (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE product_attribute_product_category ADD CONSTRAINT FK_E9E38C29BE6903FD FOREIGN KEY (product_category_id) REFERENCES product_category (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE product_category ADD CONSTRAINT FK_CDFC7356796A8F92 FOREIGN KEY (parent_category_id) REFERENCES product_category (id)');
$this->addSql('ALTER TABLE product_category_product ADD CONSTRAINT FK_9A1E202FBE6903FD FOREIGN KEY (product_category_id) REFERENCES product_category (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE product_category_product ADD CONSTRAINT FK_9A1E202F4584665A FOREIGN KEY (product_id) REFERENCES product (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE product_image ADD CONSTRAINT FK_64617F034584665A FOREIGN KEY (product_id) REFERENCES product (id)');
$this->addSql('ALTER TABLE product_tag_product ADD CONSTRAINT FK_4D54B718D8AE22B5 FOREIGN KEY (product_tag_id) REFERENCES product_tag (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE product_tag_product ADD CONSTRAINT FK_4D54B7184584665A FOREIGN KEY (product_id) REFERENCES product (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE product_variation ADD CONSTRAINT FK_C3B85674584665A FOREIGN KEY (product_id) REFERENCES product (id)');
$this->addSql('ALTER TABLE product_variation ADD CONSTRAINT FK_C3B85671AE56DE9 FOREIGN KEY (attribute_option_id) REFERENCES attribute_option (id)');
$this->addSql('ALTER TABLE product_variation_action ADD CONSTRAINT FK_22B4AA3EDC269DB3 FOREIGN KEY (product_variation_id) REFERENCES product_variation (id)');
$this->addSql('ALTER TABLE product_variation_image ADD CONSTRAINT FK_DC26E075182BFD8 FOREIGN KEY (variation_id) REFERENCES product_variation (id)');
$this->addSql('ALTER TABLE purchase ADD CONSTRAINT FK_6117D13B6BF700BD FOREIGN KEY (status_id) REFERENCES purchase_status (id)');
$this->addSql('ALTER TABLE purchase ADD CONSTRAINT FK_6117D13B19EB6921 FOREIGN KEY (client_id) REFERENCES client (id)');
$this->addSql('ALTER TABLE purchase ADD CONSTRAINT FK_6117D13B12136921 FOREIGN KEY (delivery_id) REFERENCES delivery (id)');
$this->addSql('ALTER TABLE purchase_message ADD CONSTRAINT FK_AD67FA067D182D95 FOREIGN KEY (created_by_user_id) REFERENCES user (id)');
$this->addSql('ALTER TABLE purchase_message ADD CONSTRAINT FK_AD67FA06558FBEB9 FOREIGN KEY (purchase_id) REFERENCES purchase (id)');
$this->addSql('ALTER TABLE reset_password_request ADD CONSTRAINT FK_7CE748AA76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
$this->addSql('ALTER TABLE transaction ADD CONSTRAINT FK_723705D16BF700BD FOREIGN KEY (status_id) REFERENCES transaction_status (id)');
$this->addSql('ALTER TABLE transaction ADD CONSTRAINT FK_723705D1558FBEB9 FOREIGN KEY (purchase_id) REFERENCES purchase (id)');
$this->addSql('ALTER TABLE transaction ADD CONSTRAINT FK_723705D119883967 FOREIGN KEY (method_id) REFERENCES payment_method (id)');
$this->addSql('ALTER TABLE user_role_management ADD CONSTRAINT FK_96A693ECA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE user_role_management ADD CONSTRAINT FK_96A693ECF24D59D FOREIGN KEY (role_management_id) REFERENCES role_management (id) ON DELETE CASCADE');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE attribute_option DROP FOREIGN KEY FK_78672EEA3B420C91');
$this->addSql('ALTER TABLE attribute_option_product DROP FOREIGN KEY FK_F6C30A541AE56DE9');
$this->addSql('ALTER TABLE attribute_option_product DROP FOREIGN KEY FK_F6C30A544584665A');
$this->addSql('ALTER TABLE client DROP FOREIGN KEY FK_C7440455BF396750');
$this->addSql('ALTER TABLE delivery DROP FOREIGN KEY FK_3781EC1019EB6921');
$this->addSql('ALTER TABLE invoice DROP FOREIGN KEY FK_906517446BF700BD');
$this->addSql('ALTER TABLE invoice DROP FOREIGN KEY FK_9065174419EB6921');
$this->addSql('ALTER TABLE invoice DROP FOREIGN KEY FK_90651744558FBEB9');
$this->addSql('ALTER TABLE notification DROP FOREIGN KEY FK_BF5476CA3788B79A');
$this->addSql('ALTER TABLE notification DROP FOREIGN KEY FK_BF5476CAB2705922');
$this->addSql('ALTER TABLE notification_profile_role_management DROP FOREIGN KEY FK_94A9F0A33788B79A');
$this->addSql('ALTER TABLE notification_profile_role_management DROP FOREIGN KEY FK_94A9F0A3F24D59D');
$this->addSql('ALTER TABLE order_item DROP FOREIGN KEY FK_52EA1F09558FBEB9');
$this->addSql('ALTER TABLE order_item DROP FOREIGN KEY FK_52EA1F09DC269DB3');
$this->addSql('ALTER TABLE product_attribute_product_category DROP FOREIGN KEY FK_E9E38C293B420C91');
$this->addSql('ALTER TABLE product_attribute_product_category DROP FOREIGN KEY FK_E9E38C29BE6903FD');
$this->addSql('ALTER TABLE product_category DROP FOREIGN KEY FK_CDFC7356796A8F92');
$this->addSql('ALTER TABLE product_category_product DROP FOREIGN KEY FK_9A1E202FBE6903FD');
$this->addSql('ALTER TABLE product_category_product DROP FOREIGN KEY FK_9A1E202F4584665A');
$this->addSql('ALTER TABLE product_image DROP FOREIGN KEY FK_64617F034584665A');
$this->addSql('ALTER TABLE product_tag_product DROP FOREIGN KEY FK_4D54B718D8AE22B5');
$this->addSql('ALTER TABLE product_tag_product DROP FOREIGN KEY FK_4D54B7184584665A');
$this->addSql('ALTER TABLE product_variation DROP FOREIGN KEY FK_C3B85674584665A');
$this->addSql('ALTER TABLE product_variation DROP FOREIGN KEY FK_C3B85671AE56DE9');
$this->addSql('ALTER TABLE product_variation_action DROP FOREIGN KEY FK_22B4AA3EDC269DB3');
$this->addSql('ALTER TABLE product_variation_image DROP FOREIGN KEY FK_DC26E075182BFD8');
$this->addSql('ALTER TABLE purchase DROP FOREIGN KEY FK_6117D13B6BF700BD');
$this->addSql('ALTER TABLE purchase DROP FOREIGN KEY FK_6117D13B19EB6921');
$this->addSql('ALTER TABLE purchase DROP FOREIGN KEY FK_6117D13B12136921');
$this->addSql('ALTER TABLE purchase_message DROP FOREIGN KEY FK_AD67FA067D182D95');
$this->addSql('ALTER TABLE purchase_message DROP FOREIGN KEY FK_AD67FA06558FBEB9');
$this->addSql('ALTER TABLE reset_password_request DROP FOREIGN KEY FK_7CE748AA76ED395');
$this->addSql('ALTER TABLE transaction DROP FOREIGN KEY FK_723705D16BF700BD');
$this->addSql('ALTER TABLE transaction DROP FOREIGN KEY FK_723705D1558FBEB9');
$this->addSql('ALTER TABLE transaction DROP FOREIGN KEY FK_723705D119883967');
$this->addSql('ALTER TABLE user_role_management DROP FOREIGN KEY FK_96A693ECA76ED395');
$this->addSql('ALTER TABLE user_role_management DROP FOREIGN KEY FK_96A693ECF24D59D');
$this->addSql('DROP TABLE attribute_option');
$this->addSql('DROP TABLE attribute_option_product');
$this->addSql('DROP TABLE client');
$this->addSql('DROP TABLE client_action');
$this->addSql('DROP TABLE delivery');
$this->addSql('DROP TABLE ecommerce_general_settings');
$this->addSql('DROP TABLE email_template_content');
$this->addSql('DROP TABLE general_settings');
$this->addSql('DROP TABLE invoice');
$this->addSql('DROP TABLE invoice_action');
$this->addSql('DROP TABLE invoice_settings');
$this->addSql('DROP TABLE invoice_status');
$this->addSql('DROP TABLE notification');
$this->addSql('DROP TABLE notification_profile');
$this->addSql('DROP TABLE notification_profile_role_management');
$this->addSql('DROP TABLE order_item');
$this->addSql('DROP TABLE payment_method');
$this->addSql('DROP TABLE product');
$this->addSql('DROP TABLE product_attribute');
$this->addSql('DROP TABLE product_attribute_product_category');
$this->addSql('DROP TABLE product_category');
$this->addSql('DROP TABLE product_category_product');
$this->addSql('DROP TABLE product_image');
$this->addSql('DROP TABLE product_tag');
$this->addSql('DROP TABLE product_tag_product');
$this->addSql('DROP TABLE product_variation');
$this->addSql('DROP TABLE product_variation_action');
$this->addSql('DROP TABLE product_variation_image');
$this->addSql('DROP TABLE purchase');
$this->addSql('DROP TABLE purchase_action');
$this->addSql('DROP TABLE purchase_message');
$this->addSql('DROP TABLE purchase_status');
$this->addSql('DROP TABLE reset_password_request');
$this->addSql('DROP TABLE role_management');
$this->addSql('DROP TABLE serial_number');
$this->addSql('DROP TABLE smtp_settings');
$this->addSql('DROP TABLE tax_rate');
$this->addSql('DROP TABLE transaction');
$this->addSql('DROP TABLE transaction_action');
$this->addSql('DROP TABLE transaction_status');
$this->addSql('DROP TABLE translation');
$this->addSql('DROP TABLE user');
$this->addSql('DROP TABLE user_role_management');
}
}