migrations/Version20180814170404.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20180814170404 extends AbstractMigration
  10. {
  11.     public function up(Schema $schema): void
  12.     {
  13.         // this up() migration is auto-generated, please modify it to your needs
  14.         $this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
  15.         $this->addSql('RENAME TABLE leads TO lead');
  16.         $this->addSql('ALTER TABLE lead ENGINE = InnoDB');
  17.         $this->addSql('ALTER TABLE lead CHARACTER SET = utf8mb4');
  18.         $this->addSql('UPDATE lead SET status = 0 WHERE status IS NULL');
  19.         $this->addSql('
  20.             ALTER TABLE lead
  21.                 CHANGE administrators_id user_id INT DEFAULT NULL,
  22.                 CHANGE customers_id customer_id INT DEFAULT NULL,
  23.                 CHANGE source_id source_id INT DEFAULT NULL,
  24.                 CHANGE level level_id INT DEFAULT NULL,
  25.                 CHANGE tax_debt_id debt_option_id INT DEFAULT NULL,
  26.                 CHANGE tax_issues_id tax_issue_id INT DEFAULT NULL,
  27.                 CHANGE name name VARCHAR(255) NOT NULL,
  28.                 CHANGE telephone_1 phone_number VARCHAR(255) DEFAULT NULL,
  29.                 CHANGE telephone_2 phone_number2 VARCHAR(255) DEFAULT NULL,
  30.                 CHANGE email_address email VARCHAR(255) DEFAULT NULL,
  31.                 CHANGE disposition disposition VARCHAR(255) DEFAULT NULL,
  32.                 CHANGE type type VARCHAR(255) DEFAULT NULL,
  33.                 CHANGE street_address street VARCHAR(255) DEFAULT NULL,
  34.                 CHANGE city city VARCHAR(255) DEFAULT NULL,
  35.                 CHANGE state state VARCHAR(255) DEFAULT NULL,
  36.                 CHANGE postcode zip VARCHAR(255) DEFAULT NULL,
  37.                 CHANGE comments description LONGTEXT DEFAULT NULL,
  38.                 CHANGE status enabled TINYINT(1) NOT NULL,
  39.                 CHANGE date_added created_at DATETIME NOT NULL,
  40.                 CHANGE last_modified modified_at DATETIME NOT NULL
  41.         ');
  42.         $this->addSql('UPDATE lead SET disposition = NULL WHERE disposition = \'0\'');
  43.         $this->addSql('UPDATE lead SET disposition = \'transfer\' WHERE disposition = \'1\'');
  44.         $this->addSql('UPDATE lead SET disposition = \'left_message\' WHERE disposition = \'2\'');
  45.         $this->addSql('UPDATE lead SET disposition = \'call_back\' WHERE disposition = \'8\'');
  46.         $this->addSql('UPDATE lead SET disposition = \'no_answer\' WHERE disposition = \'3\'');
  47.         $this->addSql('UPDATE lead SET disposition = \'wrong_number\' WHERE disposition = \'4\'');
  48.         $this->addSql('UPDATE lead SET disposition = \'no_tax_issue\' WHERE disposition = \'5\'');
  49.         $this->addSql('UPDATE lead SET disposition = \'hung_up\' WHERE disposition = \'9\'');
  50.         $this->addSql('UPDATE lead SET disposition = \'do_not_call\' WHERE disposition = \'6\'');
  51.         $this->addSql('UPDATE lead SET disposition = \'unsubscribe\' WHERE disposition = \'7\'');
  52.         $this->addSql('UPDATE lead SET disposition = \'fake_lead\' WHERE disposition = \'10\'');
  53.         $this->addSql('UPDATE lead SET type = \'form\' WHERE type = \'0\'');
  54.         $this->addSql('UPDATE lead SET type = \'call\' WHERE type = \'1\'');
  55.         $this->addSql('UPDATE lead SET type = \'timed\' WHERE type = \'2\'');
  56.         $this->addSql('UPDATE lead SET type = \'chat\' WHERE type = \'4\'');
  57.         $this->addSql('UPDATE lead SET type = \'handoff\' WHERE type = \'5\'');
  58.         $this->addSql('ALTER TABLE lead CHANGE disposition disposition ENUM(\'transfer\', \'left_message\', \'call_back\', \'no_answer\', \'wrong_number\', \'no_tax_issue\', \'hung_up\', \'do_not_call\', \'unsubscribe\', \'fake_lead\') DEFAULT NULL COMMENT \'(DC2Type:LeadDispositionType)\'');
  59.         $this->addSql('ALTER TABLE lead CHANGE type type ENUM(\'form\', \'call\', \'timed\', \'chat\', \'handoff\') DEFAULT NULL COMMENT \'(DC2Type:LeadType)\'');
  60.         $this->addSql('DROP INDEX idx_administrators_id ON lead');
  61.         $this->addSql('DROP INDEX idx_customers_id ON lead');
  62.         $this->addSql('DROP INDEX idx_source_id ON lead');
  63.         $this->addSql('CREATE INDEX IDX_289161CBA76ED395 ON lead (user_id)');
  64.         $this->addSql('CREATE INDEX IDX_289161CB9395C3F3 ON lead (customer_id)');
  65.         $this->addSql('CREATE INDEX IDX_289161CB953C1C61 ON lead (source_id)');
  66.         $this->addSql('CREATE INDEX IDX_289161CB5FB14BA7 ON lead (level_id)');
  67.         $this->addSql('CREATE INDEX IDX_289161CBD456175A ON lead (debt_option_id)');
  68.         $this->addSql('CREATE INDEX IDX_289161CBBEEE0432 ON lead (tax_issue_id)');
  69.         $this->addSql('RENAME TABLE leads_transfers TO lead_transfer');
  70.         $this->addSql('ALTER TABLE lead_transfer ENGINE = InnoDB');
  71.         $this->addSql('ALTER TABLE lead_transfer CHARACTER SET = utf8mb4');
  72.         $this->addSql('
  73.             ALTER TABLE lead_transfer
  74.                 CHANGE leads_id lead_id INT DEFAULT NULL,
  75.                 CHANGE administrators_id user_id INT DEFAULT NULL,
  76.                 CHANGE from_administrators_id sender_id INT DEFAULT NULL,
  77.                 CHANGE to_administrators_id receiver_id INT DEFAULT NULL,
  78.                 CHANGE date_added created_at DATETIME NOT NULL
  79.         ');
  80.         $this->addSql('DROP INDEX idx_administrators_id ON lead_transfer');
  81.         $this->addSql('DROP INDEX idx_leads_id ON lead_transfer');
  82.         $this->addSql('DROP INDEX idx_from_administrators_id ON lead_transfer');
  83.         $this->addSql('DROP INDEX idx_to_administrators_id ON lead_transfer');
  84.         $this->addSql('CREATE INDEX IDX_EA6721C355458D ON lead_transfer (lead_id)');
  85.         $this->addSql('CREATE INDEX IDX_EA6721C3A76ED395 ON lead_transfer (user_id)');
  86.         $this->addSql('CREATE INDEX IDX_EA6721C3F624B39D ON lead_transfer (sender_id)');
  87.         $this->addSql('CREATE INDEX IDX_EA6721C3CD53EDB6 ON lead_transfer (receiver_id)');
  88.         $this->addSql('UPDATE lead SET user_id = NULL WHERE user_id NOT IN (SELECT id FROM user)');
  89.         $this->addSql('UPDATE lead SET customer_id = NULL WHERE customer_id NOT IN (SELECT id FROM customer)');
  90.         $this->addSql('UPDATE lead SET source_id = NULL WHERE source_id NOT IN (SELECT id FROM config_source)');
  91.         $this->addSql('UPDATE lead SET level_id = NULL WHERE level_id NOT IN (SELECT id FROM config_level)');
  92.         $this->addSql('UPDATE lead SET debt_option_id = NULL WHERE debt_option_id NOT IN (SELECT id FROM config_debt_option)');
  93.         $this->addSql('UPDATE lead SET tax_issue_id = NULL WHERE tax_issue_id NOT IN (SELECT id FROM config_tax_issue)');
  94.         $this->addSql('DELETE FROM lead_transfer WHERE lead_id NOT IN (SELECT id FROM lead)');
  95.         $this->addSql('UPDATE lead_transfer SET user_id = NULL WHERE user_id NOT IN (SELECT id FROM user)');
  96.         $this->addSql('UPDATE lead_transfer SET sender_id = NULL WHERE sender_id NOT IN (SELECT id FROM user)');
  97.         $this->addSql('UPDATE lead_transfer SET receiver_id = NULL WHERE receiver_id NOT IN (SELECT id FROM user)');
  98.         $this->addSql('ALTER TABLE lead ADD CONSTRAINT FK_289161CBA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
  99.         $this->addSql('ALTER TABLE lead ADD CONSTRAINT FK_289161CB9395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE SET NULL');
  100.         $this->addSql('ALTER TABLE lead ADD CONSTRAINT FK_289161CB953C1C61 FOREIGN KEY (source_id) REFERENCES config_source (id) ON DELETE SET NULL');
  101.         $this->addSql('ALTER TABLE lead ADD CONSTRAINT FK_289161CB5FB14BA7 FOREIGN KEY (level_id) REFERENCES config_level (id) ON DELETE SET NULL');
  102.         $this->addSql('ALTER TABLE lead ADD CONSTRAINT FK_289161CBD456175A FOREIGN KEY (debt_option_id) REFERENCES config_debt_option (id) ON DELETE SET NULL');
  103.         $this->addSql('ALTER TABLE lead ADD CONSTRAINT FK_289161CBBEEE0432 FOREIGN KEY (tax_issue_id) REFERENCES config_tax_issue (id) ON DELETE SET NULL');
  104.         $this->addSql('ALTER TABLE lead_transfer ADD CONSTRAINT FK_EA6721C355458D FOREIGN KEY (lead_id) REFERENCES lead (id) ON DELETE CASCADE');
  105.         $this->addSql('ALTER TABLE lead_transfer ADD CONSTRAINT FK_EA6721C3A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
  106.         $this->addSql('ALTER TABLE lead_transfer ADD CONSTRAINT FK_EA6721C3F624B39D FOREIGN KEY (sender_id) REFERENCES user (id) ON DELETE SET NULL');
  107.         $this->addSql('ALTER TABLE lead_transfer ADD CONSTRAINT FK_EA6721C3CD53EDB6 FOREIGN KEY (receiver_id) REFERENCES user (id) ON DELETE SET NULL');
  108.     }
  109.     public function down(Schema $schema): void
  110.     {
  111.         // this down() migration is auto-generated, please modify it to your needs
  112.         $this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
  113.         $this->addSql('ALTER TABLE lead_transfer DROP FOREIGN KEY FK_EA6721C355458D');
  114.         $this->addSql('ALTER TABLE lead_transfer DROP FOREIGN KEY FK_EA6721C3A76ED395');
  115.         $this->addSql('ALTER TABLE lead_transfer DROP FOREIGN KEY FK_EA6721C3F624B39D');
  116.         $this->addSql('ALTER TABLE lead_transfer DROP FOREIGN KEY FK_EA6721C3CD53EDB6');
  117.         $this->addSql('ALTER TABLE lead DROP FOREIGN KEY FK_289161CBBEEE0432');
  118.         $this->addSql('ALTER TABLE lead DROP FOREIGN KEY FK_289161CBD456175A');
  119.         $this->addSql('ALTER TABLE lead DROP FOREIGN KEY FK_289161CB5FB14BA7');
  120.         $this->addSql('ALTER TABLE lead DROP FOREIGN KEY FK_289161CB953C1C61');
  121.         $this->addSql('ALTER TABLE lead DROP FOREIGN KEY FK_289161CB9395C3F3');
  122.         $this->addSql('ALTER TABLE lead DROP FOREIGN KEY FK_289161CBA76ED395');
  123.         $this->addSql('RENAME TABLE lead TO leads');
  124.         $this->addSql('ALTER TABLE leads ENGINE = MyISAM');
  125.         $this->addSql('ALTER TABLE leads CHARACTER SET = latin1');
  126.         $this->addSql('
  127.             ALTER TABLE leads
  128.                 CHANGE user_id administrators_id INT NOT NULL,
  129.                 CHANGE customer_id customers_id INT NOT NULL,
  130.                 CHANGE source_id source_id INT NOT NULL,
  131.                 CHANGE level_id level TINYINT(1) DEFAULT \'0\',
  132.                 CHANGE debt_option_id tax_debt_id INT DEFAULT NULL,
  133.                 CHANGE tax_issue_id tax_issues_id INT DEFAULT NULL,
  134.                 CHANGE name name VARCHAR(64) NOT NULL,
  135.                 CHANGE phone_number telephone_1 VARCHAR(32) DEFAULT NULL,
  136.                 CHANGE phone_number2 telephone_2 VARCHAR(32) DEFAULT NULL,
  137.                 CHANGE email email_address VARCHAR(255) DEFAULT NULL,
  138.                 CHANGE disposition disposition VARCHAR(255) DEFAULT NULL,
  139.                 CHANGE type type VARCHAR(255) DEFAULT NULL,
  140.                 CHANGE street street_address VARCHAR(64) NOT NULL,
  141.                 CHANGE city city VARCHAR(32) NOT NULL,
  142.                 CHANGE state state VARCHAR(32) DEFAULT NULL,
  143.                 CHANGE zip postcode VARCHAR(10) NOT NULL,
  144.                 CHANGE description comments TEXT DEFAULT NULL,
  145.                 CHANGE enabled status TINYINT(1) DEFAULT \'0\',
  146.                 CHANGE created_at date_added DATETIME DEFAULT NULL,
  147.                 CHANGE modified_at last_modified DATETIME DEFAULT NULL
  148.         ');
  149.         $this->addSql('UPDATE leads SET disposition = \'1\' WHERE disposition = \'transfer\'');
  150.         $this->addSql('UPDATE leads SET disposition = \'2\' WHERE disposition = \'left_message\'');
  151.         $this->addSql('UPDATE leads SET disposition = \'8\' WHERE disposition = \'call_back\'');
  152.         $this->addSql('UPDATE leads SET disposition = \'3\' WHERE disposition = \'no_answer\'');
  153.         $this->addSql('UPDATE leads SET disposition = \'4\' WHERE disposition = \'wrong_number\'');
  154.         $this->addSql('UPDATE leads SET disposition = \'5\' WHERE disposition = \'no_tax_issue\'');
  155.         $this->addSql('UPDATE leads SET disposition = \'9\' WHERE disposition = \'hung_up\'');
  156.         $this->addSql('UPDATE leads SET disposition = \'6\' WHERE disposition = \'do_not_call\'');
  157.         $this->addSql('UPDATE leads SET disposition = \'7\' WHERE disposition = \'unsubscribe7\'');
  158.         $this->addSql('UPDATE leads SET disposition = \'10\' WHERE disposition = \'fake_lead\'');
  159.         $this->addSql('UPDATE leads SET type = \'0\' WHERE type = \'form\'');
  160.         $this->addSql('UPDATE leads SET type = \'1\' WHERE type = \'call\'');
  161.         $this->addSql('UPDATE leads SET type = \'2\' WHERE type = \'timed\'');
  162.         $this->addSql('UPDATE leads SET type = \'4\' WHERE type = \'chat\'');
  163.         $this->addSql('UPDATE leads SET type = \'5\' WHERE type = \'handoff\'');
  164.         $this->addSql('ALTER TABLE leads CHANGE disposition disposition TINYINT(1) DEFAULT \'0\'');
  165.         $this->addSql('ALTER TABLE leads CHANGE type type TINYINT(1) DEFAULT \'0\'');
  166.         $this->addSql('DROP INDEX IDX_289161CBA76ED395 ON leads');
  167.         $this->addSql('DROP INDEX IDX_289161CB9395C3F3 ON leads');
  168.         $this->addSql('DROP INDEX IDX_289161CB953C1C61 ON leads');
  169.         $this->addSql('DROP INDEX IDX_289161CB5FB14BA7 ON leads');
  170.         $this->addSql('DROP INDEX IDX_289161CBD456175A ON leads');
  171.         $this->addSql('DROP INDEX IDX_289161CBBEEE0432 ON leads');
  172.         $this->addSql('CREATE INDEX idx_administrators_id ON leads (administrators_id)');
  173.         $this->addSql('CREATE INDEX idx_customers_id ON leads (customers_id)');
  174.         $this->addSql('CREATE INDEX idx_source_id ON leads (source_id)');
  175.         $this->addSql('RENAME TABLE lead_transfer TO leads_transfers');
  176.         $this->addSql('ALTER TABLE leads_transfers ENGINE = InnoDB');
  177.         $this->addSql('ALTER TABLE leads_transfers CHARACTER SET = utf8mb4');
  178.         $this->addSql('
  179.             ALTER TABLE leads_transfers
  180.                 CHANGE lead_id leads_id INT NOT NULL,
  181.                 CHANGE user_id administrators_id INT NOT NULL,
  182.                 CHANGE sender_id from_administrators_id INT DEFAULT NULL,
  183.                 CHANGE receiver_id to_administrators_id INT DEFAULT NULL,
  184.                 CHANGE created_at date_added DATETIME DEFAULT NULL
  185.         ');
  186.         $this->addSql('DROP INDEX IDX_EA6721C355458D ON leads_transfers');
  187.         $this->addSql('DROP INDEX IDX_EA6721C3A76ED395 ON leads_transfers');
  188.         $this->addSql('DROP INDEX IDX_EA6721C3F624B39D ON leads_transfers');
  189.         $this->addSql('DROP INDEX IDX_EA6721C3CD53EDB6 ON leads_transfers');
  190.         $this->addSql('CREATE INDEX idx_administrators_id ON leads_transfers (administrators_id)');
  191.         $this->addSql('CREATE INDEX idx_leads_id ON leads_transfers (leads_id)');
  192.         $this->addSql('CREATE INDEX idx_from_administrators_id ON leads_transfers (from_administrators_id)');
  193.         $this->addSql('CREATE INDEX idx_to_administrators_id ON leads_transfers (to_administrators_id)');
  194.     }
  195. }