<?php
declare(strict_types=1);
namespace PPSDKDoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20220304205304_ProductCampaigns extends AbstractMigration
{
public function getDescription(): string
{
return 'Product campaign logic';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE product_campaigns (id INT AUTO_INCREMENT NOT NULL, created_by_admin_id INT DEFAULT NULL, updated_by_admin_id INT DEFAULT NULL, deleted_by_admin_id INT DEFAULT NULL, published_by_admin_id INT DEFAULT NULL, unpublished_by_admin_id INT DEFAULT NULL, web_id INT NOT NULL, deactivated_by_admin_id INT DEFAULT NULL, reactivated_by_admin_id INT DEFAULT NULL, subtitle LONGTEXT NOT NULL, hero_product_headline VARCHAR(255) NOT NULL, hero_product_subtitle VARCHAR(255) NOT NULL, other_extra_cashback_shops_headline VARCHAR(255) NOT NULL, tutorial_headline VARCHAR(255) NOT NULL, tutorial_info VARCHAR(255) NOT NULL, share_text VARCHAR(255) NOT NULL, partner_shops_headline VARCHAR(255) NOT NULL, recommendation_extra_info VARCHAR(255) NOT NULL, resolved_page_path VARCHAR(400) NOT NULL, page_path_resolved_when DATETIME DEFAULT NULL, page_path_resolve_error VARCHAR(255) NOT NULL, allow_access_when_deactivated TINYINT(1) NOT NULL, keep_in_sitemap_when_deactivated TINYINT(1) NOT NULL, keep_in_search_when_deactivated TINYINT(1) NOT NULL, listing_title VARCHAR(255) NOT NULL, breadcrumb_title VARCHAR(255) NOT NULL, h1_title VARCHAR(255) NOT NULL, created_when DATETIME NOT NULL, updated_when DATETIME NOT NULL, deleted TINYINT(1) NOT NULL, not_deleted TINYINT(1) DEFAULT NULL, deleted_when DATETIME DEFAULT NULL, published TINYINT(1) NOT NULL, published_when DATETIME DEFAULT NULL, unpublished_when DATETIME DEFAULT NULL, identifier VARCHAR(40) NOT NULL, url_slug VARCHAR(255) NOT NULL, url_slug_hash VARCHAR(35) NOT NULL, deactivated TINYINT(1) NOT NULL, deactivated_when DATETIME DEFAULT NULL, reactivated_when DATETIME DEFAULT NULL, deactivation_type VARCHAR(40) NOT NULL, deactivation_reason VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, active_from_date DATE NOT NULL, active_to_date DATE DEFAULT NULL, hero_image_attached TINYINT(1) NOT NULL, hero_image_attached_when DATETIME DEFAULT NULL, hero_image_url VARCHAR(255) NOT NULL, hero_image_storage_path VARCHAR(255) NOT NULL, hero_image_file_size INT NOT NULL, hero_image_mime_type VARCHAR(40) NOT NULL, hero_image_width INT NOT NULL, hero_image_height INT NOT NULL, hero_image_alt VARCHAR(255) DEFAULT \'\' NOT NULL, seo_meta_title VARCHAR(255) NOT NULL, seo_meta_robots VARCHAR(255) NOT NULL, seo_meta_description LONGTEXT NOT NULL, seo_meta_keywords LONGTEXT NOT NULL, seo_canonical VARCHAR(255) NOT NULL, seo_sitemap_change_frequency VARCHAR(20) DEFAULT \'daily\' NOT NULL, og_title VARCHAR(255) NOT NULL, og_description VARCHAR(255) NOT NULL, og_image_attached TINYINT(1) NOT NULL, og_image_attached_when DATETIME DEFAULT NULL, og_image_url VARCHAR(255) NOT NULL, og_image_storage_path VARCHAR(255) NOT NULL, og_image_file_size INT NOT NULL, og_image_mime_type VARCHAR(40) NOT NULL, og_image_width INT NOT NULL, og_image_height INT NOT NULL, og_image_alt VARCHAR(255) DEFAULT \'\' NOT NULL, twitter_card VARCHAR(255) NOT NULL, twitter_title VARCHAR(255) NOT NULL, twitter_description VARCHAR(255) NOT NULL, twitter_image_attached TINYINT(1) NOT NULL, twitter_image_attached_when DATETIME DEFAULT NULL, twitter_image_url VARCHAR(255) NOT NULL, twitter_image_storage_path VARCHAR(255) NOT NULL, twitter_image_file_size INT NOT NULL, twitter_image_mime_type VARCHAR(40) NOT NULL, twitter_image_width INT NOT NULL, twitter_image_height INT NOT NULL, twitter_image_alt VARCHAR(255) DEFAULT \'\' NOT NULL, INDEX IDX_8DD3C2FD64F1F4EE (created_by_admin_id), INDEX IDX_8DD3C2FD681D6437 (updated_by_admin_id), INDEX IDX_8DD3C2FD54C5E183 (deleted_by_admin_id), INDEX IDX_8DD3C2FD261C8226 (published_by_admin_id), INDEX IDX_8DD3C2FD1A976CE (unpublished_by_admin_id), INDEX IDX_8DD3C2FDFE18474D (web_id), INDEX IDX_8DD3C2FD70EFE094 (deactivated_by_admin_id), INDEX IDX_8DD3C2FD9C5714A2 (reactivated_by_admin_id), UNIQUE INDEX identifier (identifier, not_deleted), UNIQUE INDEX url_slug_hash (url_slug_hash, not_deleted), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_campaigns_days (id INT AUTO_INCREMENT NOT NULL, product_campaign_id INT DEFAULT NULL, promoted_product_id INT DEFAULT NULL, created_by_admin_id INT DEFAULT NULL, updated_by_admin_id INT DEFAULT NULL, deleted_by_admin_id INT DEFAULT NULL, date DATE NOT NULL, h1_title VARCHAR(255) NOT NULL, created_when DATETIME NOT NULL, updated_when DATETIME NOT NULL, deleted TINYINT(1) NOT NULL, not_deleted TINYINT(1) DEFAULT NULL, deleted_when DATETIME DEFAULT NULL, seo_meta_title VARCHAR(255) NOT NULL, seo_meta_robots VARCHAR(255) NOT NULL, seo_meta_description LONGTEXT NOT NULL, seo_meta_keywords LONGTEXT NOT NULL, seo_canonical VARCHAR(255) NOT NULL, seo_sitemap_change_frequency VARCHAR(20) DEFAULT \'daily\' NOT NULL, og_title VARCHAR(255) NOT NULL, og_description VARCHAR(255) NOT NULL, og_image_attached TINYINT(1) NOT NULL, og_image_attached_when DATETIME DEFAULT NULL, og_image_url VARCHAR(255) NOT NULL, og_image_storage_path VARCHAR(255) NOT NULL, og_image_file_size INT NOT NULL, og_image_mime_type VARCHAR(40) NOT NULL, og_image_width INT NOT NULL, og_image_height INT NOT NULL, og_image_alt VARCHAR(255) DEFAULT \'\' NOT NULL, twitter_card VARCHAR(255) NOT NULL, twitter_title VARCHAR(255) NOT NULL, twitter_description VARCHAR(255) NOT NULL, twitter_image_attached TINYINT(1) NOT NULL, twitter_image_attached_when DATETIME DEFAULT NULL, twitter_image_url VARCHAR(255) NOT NULL, twitter_image_storage_path VARCHAR(255) NOT NULL, twitter_image_file_size INT NOT NULL, twitter_image_mime_type VARCHAR(40) NOT NULL, twitter_image_width INT NOT NULL, twitter_image_height INT NOT NULL, twitter_image_alt VARCHAR(255) DEFAULT \'\' NOT NULL, INDEX IDX_DBC353735A16696B (product_campaign_id), INDEX IDX_DBC353737BA39F43 (promoted_product_id), INDEX IDX_DBC3537364F1F4EE (created_by_admin_id), INDEX IDX_DBC35373681D6437 (updated_by_admin_id), INDEX IDX_DBC3537354C5E183 (deleted_by_admin_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_campaigns_partner_shops (id INT AUTO_INCREMENT NOT NULL, product_campaign_id INT NOT NULL, shop_id INT NOT NULL, listing_order INT NOT NULL, created_when DATETIME NOT NULL, updated_when DATETIME NOT NULL, INDEX IDX_AB1C39475A16696B (product_campaign_id), INDEX IDX_AB1C39474D16C4DD (shop_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE product_campaigns_products (id INT AUTO_INCREMENT NOT NULL, product_campaign_id INT NOT NULL, partner_shop_id INT NOT NULL, review_id INT DEFAULT NULL, created_by_admin_id INT DEFAULT NULL, updated_by_admin_id INT DEFAULT NULL, deleted_by_admin_id INT DEFAULT NULL, deactivated_by_admin_id INT DEFAULT NULL, reactivated_by_admin_id INT DEFAULT NULL, published_by_admin_id INT DEFAULT NULL, unpublished_by_admin_id INT DEFAULT NULL, review_link_title VARCHAR(50) DEFAULT \'\' NOT NULL, title LONGTEXT NOT NULL, description LONGTEXT NOT NULL, tooltip LONGTEXT NOT NULL, custom_target_url LONGTEXT NOT NULL, custom_button_label VARCHAR(50) DEFAULT \'\' NOT NULL, labels JSON NOT NULL, listing_order INT DEFAULT 0 NOT NULL, created_when DATETIME NOT NULL, updated_when DATETIME NOT NULL, deleted TINYINT(1) NOT NULL, not_deleted TINYINT(1) DEFAULT NULL, deleted_when DATETIME DEFAULT NULL, deactivated TINYINT(1) NOT NULL, deactivated_when DATETIME DEFAULT NULL, reactivated_when DATETIME DEFAULT NULL, deactivation_type VARCHAR(40) NOT NULL, deactivation_reason VARCHAR(255) NOT NULL, published TINYINT(1) NOT NULL, published_when DATETIME DEFAULT NULL, unpublished_when DATETIME DEFAULT NULL, active_from_when DATETIME NOT NULL, active_to_when DATETIME NOT NULL, image_attached TINYINT(1) NOT NULL, image_attached_when DATETIME DEFAULT NULL, image_url VARCHAR(255) NOT NULL, image_storage_path VARCHAR(255) NOT NULL, image_file_size INT NOT NULL, image_mime_type VARCHAR(40) NOT NULL, image_width INT NOT NULL, image_height INT NOT NULL, image_alt VARCHAR(255) DEFAULT \'\' NOT NULL, INDEX IDX_FA4565635A16696B (product_campaign_id), INDEX IDX_FA4565638AFCA7C0 (partner_shop_id), INDEX IDX_FA4565633E2E969B (review_id), INDEX IDX_FA45656364F1F4EE (created_by_admin_id), INDEX IDX_FA456563681D6437 (updated_by_admin_id), INDEX IDX_FA45656354C5E183 (deleted_by_admin_id), INDEX IDX_FA45656370EFE094 (deactivated_by_admin_id), INDEX IDX_FA4565639C5714A2 (reactivated_by_admin_id), INDEX IDX_FA456563261C8226 (published_by_admin_id), INDEX IDX_FA4565631A976CE (unpublished_by_admin_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE product_campaigns ADD CONSTRAINT FK_8DD3C2FD64F1F4EE FOREIGN KEY (created_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns ADD CONSTRAINT FK_8DD3C2FD681D6437 FOREIGN KEY (updated_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns ADD CONSTRAINT FK_8DD3C2FD54C5E183 FOREIGN KEY (deleted_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns ADD CONSTRAINT FK_8DD3C2FD261C8226 FOREIGN KEY (published_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns ADD CONSTRAINT FK_8DD3C2FD1A976CE FOREIGN KEY (unpublished_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns ADD CONSTRAINT FK_8DD3C2FDFE18474D FOREIGN KEY (web_id) REFERENCES webs (id)');
$this->addSql('ALTER TABLE product_campaigns ADD CONSTRAINT FK_8DD3C2FD70EFE094 FOREIGN KEY (deactivated_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns ADD CONSTRAINT FK_8DD3C2FD9C5714A2 FOREIGN KEY (reactivated_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns_days ADD CONSTRAINT FK_DBC353735A16696B FOREIGN KEY (product_campaign_id) REFERENCES product_campaigns (id)');
$this->addSql('ALTER TABLE product_campaigns_days ADD CONSTRAINT FK_DBC353737BA39F43 FOREIGN KEY (promoted_product_id) REFERENCES product_campaigns_products (id)');
$this->addSql('ALTER TABLE product_campaigns_days ADD CONSTRAINT FK_DBC3537364F1F4EE FOREIGN KEY (created_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns_days ADD CONSTRAINT FK_DBC35373681D6437 FOREIGN KEY (updated_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns_days ADD CONSTRAINT FK_DBC3537354C5E183 FOREIGN KEY (deleted_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns_partner_shops ADD CONSTRAINT FK_AB1C39475A16696B FOREIGN KEY (product_campaign_id) REFERENCES product_campaigns (id)');
$this->addSql('ALTER TABLE product_campaigns_partner_shops ADD CONSTRAINT FK_AB1C39474D16C4DD FOREIGN KEY (shop_id) REFERENCES shops (id)');
$this->addSql('ALTER TABLE product_campaigns_products ADD CONSTRAINT FK_FA4565635A16696B FOREIGN KEY (product_campaign_id) REFERENCES product_campaigns (id)');
$this->addSql('ALTER TABLE product_campaigns_products ADD CONSTRAINT FK_FA4565638AFCA7C0 FOREIGN KEY (partner_shop_id) REFERENCES shops (id)');
$this->addSql('ALTER TABLE product_campaigns_products ADD CONSTRAINT FK_FA4565633E2E969B FOREIGN KEY (review_id) REFERENCES articles (id)');
$this->addSql('ALTER TABLE product_campaigns_products ADD CONSTRAINT FK_FA45656364F1F4EE FOREIGN KEY (created_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns_products ADD CONSTRAINT FK_FA456563681D6437 FOREIGN KEY (updated_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns_products ADD CONSTRAINT FK_FA45656354C5E183 FOREIGN KEY (deleted_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns_products ADD CONSTRAINT FK_FA45656370EFE094 FOREIGN KEY (deactivated_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns_products ADD CONSTRAINT FK_FA4565639C5714A2 FOREIGN KEY (reactivated_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns_products ADD CONSTRAINT FK_FA456563261C8226 FOREIGN KEY (published_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE product_campaigns_products ADD CONSTRAINT FK_FA4565631A976CE FOREIGN KEY (unpublished_by_admin_id) REFERENCES administrators (id)');
$this->addSql('ALTER TABLE registration_bonuses ADD only_for_recommended_users TINYINT(1) DEFAULT 0 NOT NULL');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE product_campaigns_days DROP FOREIGN KEY FK_DBC353735A16696B');
$this->addSql('ALTER TABLE product_campaigns_partner_shops DROP FOREIGN KEY FK_AB1C39475A16696B');
$this->addSql('ALTER TABLE product_campaigns_products DROP FOREIGN KEY FK_FA4565635A16696B');
$this->addSql('ALTER TABLE product_campaigns_days DROP FOREIGN KEY FK_DBC353737BA39F43');
$this->addSql('DROP TABLE product_campaigns');
$this->addSql('DROP TABLE product_campaigns_days');
$this->addSql('DROP TABLE product_campaigns_partner_shops');
$this->addSql('DROP TABLE product_campaigns_products');
$this->addSql('ALTER TABLE registration_bonuses DROP only_for_recommended_users');
}
}