migrations/Version20230307062659.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 Version20230307062659 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return '';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         // this up() migration is auto-generated, please modify it to your needs
  18.         $this->addSql('DROP SEQUENCE omni.message_id_seq CASCADE');
  19.         $this->addSql('DROP SEQUENCE omni.message_attachment_id_seq CASCADE');
  20.         $this->addSql('DROP SEQUENCE omni.channel_facebook_id_seq CASCADE');
  21.         $this->addSql('DROP SEQUENCE omni.channel_instagram_id_seq CASCADE');
  22.         $this->addSql('CREATE SEQUENCE omni.activity_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
  23.         $this->addSql('CREATE SEQUENCE omni.activity_attachment_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
  24.         $this->addSql('CREATE TABLE omni.activity (id INT NOT NULL, conversation_id INT NOT NULL, contact_id INT DEFAULT NULL, tenant_person_id INT DEFAULT NULL, event_from_tenant_person_id INT DEFAULT NULL, event_to_tenant_person_id INT DEFAULT NULL, tenant_id INT NOT NULL, type VARCHAR(50) NOT NULL, text TEXT DEFAULT NULL, event_type VARCHAR(100) DEFAULT NULL, event_source VARCHAR(50) DEFAULT NULL, message_mid TEXT DEFAULT NULL, message_direction VARCHAR(50) DEFAULT NULL, message_status VARCHAR(50) DEFAULT NULL, message_fail_reason VARCHAR(255) DEFAULT NULL, message_read_at TIMESTAMP(6) WITHOUT TIME ZONE DEFAULT NULL, created_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, is_deleted BOOLEAN DEFAULT false NOT NULL, deleted_at TIMESTAMP(6) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  25.         $this->addSql('CREATE INDEX IDX_3C3F39899AC0396 ON omni.activity (conversation_id)');
  26.         $this->addSql('CREATE INDEX IDX_3C3F3989E7A1254A ON omni.activity (contact_id)');
  27.         $this->addSql('CREATE INDEX IDX_3C3F39892837A9A ON omni.activity (tenant_person_id)');
  28.         $this->addSql('CREATE INDEX IDX_3C3F39894D951D92 ON omni.activity (event_from_tenant_person_id)');
  29.         $this->addSql('CREATE INDEX IDX_3C3F3989CFEF8085 ON omni.activity (event_to_tenant_person_id)');
  30.         $this->addSql('CREATE INDEX IDX_3C3F39899033212A ON omni.activity (tenant_id)');
  31.         $this->addSql('CREATE TABLE omni.activity_attachment (id INT NOT NULL, activity_id INT NOT NULL, attachment_id INT NOT NULL, tenant_id INT NOT NULL, caption VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, is_deleted BOOLEAN DEFAULT false NOT NULL, deleted_at TIMESTAMP(6) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  32.         $this->addSql('CREATE INDEX IDX_A1B4C21A81C06096 ON omni.activity_attachment (activity_id)');
  33.         $this->addSql('CREATE INDEX IDX_A1B4C21A464E68B ON omni.activity_attachment (attachment_id)');
  34.         $this->addSql('CREATE INDEX IDX_A1B4C21A9033212A ON omni.activity_attachment (tenant_id)');
  35.         $this->addSql('ALTER TABLE omni.activity ADD CONSTRAINT FK_3C3F39899AC0396 FOREIGN KEY (conversation_id) REFERENCES omni.conversation (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  36.         $this->addSql('ALTER TABLE omni.activity ADD CONSTRAINT FK_3C3F3989E7A1254A FOREIGN KEY (contact_id) REFERENCES omni.contact (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  37.         $this->addSql('ALTER TABLE omni.activity ADD CONSTRAINT FK_3C3F39892837A9A FOREIGN KEY (tenant_person_id) REFERENCES account.tenant_person (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  38.         $this->addSql('ALTER TABLE omni.activity ADD CONSTRAINT FK_3C3F39894D951D92 FOREIGN KEY (event_from_tenant_person_id) REFERENCES account.tenant_person (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  39.         $this->addSql('ALTER TABLE omni.activity ADD CONSTRAINT FK_3C3F3989CFEF8085 FOREIGN KEY (event_to_tenant_person_id) REFERENCES account.tenant_person (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  40.         $this->addSql('ALTER TABLE omni.activity ADD CONSTRAINT FK_3C3F39899033212A FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  41.         $this->addSql('ALTER TABLE omni.activity_attachment ADD CONSTRAINT FK_A1B4C21A81C06096 FOREIGN KEY (activity_id) REFERENCES omni.activity (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  42.         $this->addSql('ALTER TABLE omni.activity_attachment ADD CONSTRAINT FK_A1B4C21A464E68B FOREIGN KEY (attachment_id) REFERENCES system.attachment (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  43.         $this->addSql('ALTER TABLE omni.activity_attachment ADD CONSTRAINT FK_A1B4C21A9033212A FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  44.         $this->addSql('ALTER TABLE omni.channel_facebook DROP CONSTRAINT fk_88acb25b72f5a1aa');
  45.         $this->addSql('ALTER TABLE omni.channel_facebook DROP CONSTRAINT fk_88acb25b9033212a');
  46.         $this->addSql('ALTER TABLE omni.message_attachment DROP CONSTRAINT fk_b7a7a93b537a1329');
  47.         $this->addSql('ALTER TABLE omni.message_attachment DROP CONSTRAINT fk_b7a7a93b9033212a');
  48.         $this->addSql('ALTER TABLE omni.message_attachment DROP CONSTRAINT fk_b7a7a93b464e68b');
  49.         $this->addSql('ALTER TABLE omni.channel_instagram DROP CONSTRAINT fk_d8f8ccbd72f5a1aa');
  50.         $this->addSql('ALTER TABLE omni.channel_instagram DROP CONSTRAINT fk_d8f8ccbd9033212a');
  51.         $this->addSql('ALTER TABLE omni.message DROP CONSTRAINT fk_429072709ac0396');
  52.         $this->addSql('ALTER TABLE omni.message DROP CONSTRAINT fk_429072709033212a');
  53.         $this->addSql('ALTER TABLE omni.message DROP CONSTRAINT fk_4290727072f5a1aa');
  54.         $this->addSql('DROP TABLE omni.channel_facebook');
  55.         $this->addSql('DROP TABLE omni.message_attachment');
  56.         $this->addSql('DROP TABLE omni.channel_instagram');
  57.         $this->addSql('DROP TABLE omni.message');
  58.         $this->addSql('ALTER TABLE omni.channel ADD identifier TEXT NOT NULL');
  59.         $this->addSql('ALTER TABLE omni.channel ADD fb_user_id BIGINT DEFAULT NULL');
  60.         $this->addSql('ALTER TABLE omni.channel ADD fb_page_id BIGINT DEFAULT NULL');
  61.         $this->addSql('ALTER TABLE omni.channel ADD fb_user_access_token TEXT DEFAULT NULL');
  62.         $this->addSql('ALTER TABLE omni.channel ADD fb_page_access_token TEXT DEFAULT NULL');
  63.         $this->addSql('ALTER TABLE omni.channel ADD ig_user_id BIGINT DEFAULT NULL');
  64.         $this->addSql('ALTER TABLE omni.contact ADD conversation_id INT NOT NULL');
  65.         $this->addSql('ALTER TABLE omni.contact DROP surname');
  66.         $this->addSql('ALTER TABLE omni.contact DROP prospect_contact_id');
  67.         $this->addSql('ALTER TABLE omni.contact ADD CONSTRAINT FK_B84FA4379AC0396 FOREIGN KEY (conversation_id) REFERENCES omni.conversation (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  68.         $this->addSql('CREATE INDEX IDX_B84FA4379AC0396 ON omni.contact (conversation_id)');
  69.         $this->addSql('ALTER TABLE omni.conversation DROP CONSTRAINT fk_7986d084e7a1254a');
  70.         $this->addSql('ALTER TABLE omni.conversation DROP CONSTRAINT fk_7986d08472f5a1aa');
  71.         $this->addSql('DROP INDEX omni.idx_7986d08472f5a1aa');
  72.         $this->addSql('DROP INDEX omni.uniq_7986d084e7a1254a');
  73.         $this->addSql('ALTER TABLE omni.conversation ADD assignee_id INT DEFAULT NULL');
  74.         $this->addSql('ALTER TABLE omni.conversation ADD last_message_id INT NOT NULL');
  75.         $this->addSql('ALTER TABLE omni.conversation ADD prospect_contact_id INT DEFAULT NULL');
  76.         $this->addSql('ALTER TABLE omni.conversation DROP contact_id');
  77.         $this->addSql('ALTER TABLE omni.conversation DROP channel_id');
  78.         $this->addSql('ALTER TABLE omni.conversation ALTER status DROP DEFAULT');
  79.         $this->addSql('ALTER TABLE omni.conversation ADD CONSTRAINT FK_7986D08459EC7D60 FOREIGN KEY (assignee_id) REFERENCES account.tenant_person (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  80.         $this->addSql('ALTER TABLE omni.conversation ADD CONSTRAINT FK_7986D084BA0E79C3 FOREIGN KEY (last_message_id) REFERENCES omni.activity (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  81.         $this->addSql('CREATE INDEX IDX_7986D08459EC7D60 ON omni.conversation (assignee_id)');
  82.         $this->addSql('CREATE UNIQUE INDEX UNIQ_7986D084BA0E79C3 ON omni.conversation (last_message_id)');
  83.     }
  84.     public function down(Schema $schema): void
  85.     {
  86.         // this down() migration is auto-generated, please modify it to your needs
  87.         $this->addSql('CREATE SCHEMA public');
  88.         $this->addSql('ALTER TABLE omni.conversation DROP CONSTRAINT FK_7986D084BA0E79C3');
  89.         $this->addSql('DROP SEQUENCE omni.activity_id_seq CASCADE');
  90.         $this->addSql('DROP SEQUENCE omni.activity_attachment_id_seq CASCADE');
  91.         $this->addSql('CREATE SEQUENCE omni.message_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
  92.         $this->addSql('CREATE SEQUENCE omni.message_attachment_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
  93.         $this->addSql('CREATE SEQUENCE omni.channel_facebook_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
  94.         $this->addSql('CREATE SEQUENCE omni.channel_instagram_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
  95.         $this->addSql('CREATE TABLE omni.channel_facebook (id INT NOT NULL, channel_id INT NOT NULL, tenant_id INT NOT NULL, user_id BIGINT NOT NULL, page_id BIGINT NOT NULL, user_access_token TEXT NOT NULL, page_access_token TEXT NOT NULL, granted_scopes VARCHAR(255) NOT NULL, created_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, is_deleted BOOLEAN DEFAULT false NOT NULL, deleted_at TIMESTAMP(6) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  96.         $this->addSql('CREATE INDEX idx_88acb25b9033212a ON omni.channel_facebook (tenant_id)');
  97.         $this->addSql('CREATE UNIQUE INDEX uniq_88acb25b72f5a1aa ON omni.channel_facebook (channel_id)');
  98.         $this->addSql('CREATE TABLE omni.message_attachment (id INT NOT NULL, message_id INT NOT NULL, tenant_id INT NOT NULL, attachment_id INT NOT NULL, type VARCHAR(255) NOT NULL, title VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, is_deleted BOOLEAN DEFAULT false NOT NULL, deleted_at TIMESTAMP(6) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  99.         $this->addSql('CREATE INDEX idx_b7a7a93b464e68b ON omni.message_attachment (attachment_id)');
  100.         $this->addSql('CREATE INDEX idx_b7a7a93b9033212a ON omni.message_attachment (tenant_id)');
  101.         $this->addSql('CREATE INDEX idx_b7a7a93b537a1329 ON omni.message_attachment (message_id)');
  102.         $this->addSql('CREATE TABLE omni.channel_instagram (id INT NOT NULL, channel_id INT NOT NULL, tenant_id INT NOT NULL, user_id BIGINT NOT NULL, page_id BIGINT NOT NULL, ig_user_id BIGINT NOT NULL, user_access_token TEXT NOT NULL, page_access_token TEXT NOT NULL, granted_scopes VARCHAR(255) NOT NULL, created_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, is_deleted BOOLEAN DEFAULT false NOT NULL, deleted_at TIMESTAMP(6) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  103.         $this->addSql('CREATE INDEX idx_d8f8ccbd9033212a ON omni.channel_instagram (tenant_id)');
  104.         $this->addSql('CREATE UNIQUE INDEX uniq_d8f8ccbd72f5a1aa ON omni.channel_instagram (channel_id)');
  105.         $this->addSql('CREATE TABLE omni.message (id INT NOT NULL, conversation_id INT NOT NULL, tenant_id INT NOT NULL, channel_id INT NOT NULL, mid TEXT DEFAULT NULL, direction VARCHAR(255) NOT NULL, status VARCHAR(255) NOT NULL, text TEXT DEFAULT NULL, created_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL, is_deleted BOOLEAN DEFAULT false NOT NULL, deleted_at TIMESTAMP(6) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  106.         $this->addSql('CREATE INDEX idx_4290727072f5a1aa ON omni.message (channel_id)');
  107.         $this->addSql('CREATE INDEX idx_429072709033212a ON omni.message (tenant_id)');
  108.         $this->addSql('CREATE INDEX idx_429072709ac0396 ON omni.message (conversation_id)');
  109.         $this->addSql('ALTER TABLE omni.channel_facebook ADD CONSTRAINT fk_88acb25b72f5a1aa FOREIGN KEY (channel_id) REFERENCES omni.channel (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  110.         $this->addSql('ALTER TABLE omni.channel_facebook ADD CONSTRAINT fk_88acb25b9033212a FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  111.         $this->addSql('ALTER TABLE omni.message_attachment ADD CONSTRAINT fk_b7a7a93b537a1329 FOREIGN KEY (message_id) REFERENCES omni.message (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  112.         $this->addSql('ALTER TABLE omni.message_attachment ADD CONSTRAINT fk_b7a7a93b9033212a FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  113.         $this->addSql('ALTER TABLE omni.message_attachment ADD CONSTRAINT fk_b7a7a93b464e68b FOREIGN KEY (attachment_id) REFERENCES system.attachment (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  114.         $this->addSql('ALTER TABLE omni.channel_instagram ADD CONSTRAINT fk_d8f8ccbd72f5a1aa FOREIGN KEY (channel_id) REFERENCES omni.channel (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  115.         $this->addSql('ALTER TABLE omni.channel_instagram ADD CONSTRAINT fk_d8f8ccbd9033212a FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  116.         $this->addSql('ALTER TABLE omni.message ADD CONSTRAINT fk_429072709ac0396 FOREIGN KEY (conversation_id) REFERENCES omni.conversation (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  117.         $this->addSql('ALTER TABLE omni.message ADD CONSTRAINT fk_429072709033212a FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  118.         $this->addSql('ALTER TABLE omni.message ADD CONSTRAINT fk_4290727072f5a1aa FOREIGN KEY (channel_id) REFERENCES omni.channel (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  119.         $this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F39899AC0396');
  120.         $this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F3989E7A1254A');
  121.         $this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F39892837A9A');
  122.         $this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F39894D951D92');
  123.         $this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F3989CFEF8085');
  124.         $this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F39899033212A');
  125.         $this->addSql('ALTER TABLE omni.activity_attachment DROP CONSTRAINT FK_A1B4C21A81C06096');
  126.         $this->addSql('ALTER TABLE omni.activity_attachment DROP CONSTRAINT FK_A1B4C21A464E68B');
  127.         $this->addSql('ALTER TABLE omni.activity_attachment DROP CONSTRAINT FK_A1B4C21A9033212A');
  128.         $this->addSql('DROP TABLE omni.activity');
  129.         $this->addSql('DROP TABLE omni.activity_attachment');
  130.         $this->addSql('ALTER TABLE omni.conversation DROP CONSTRAINT FK_7986D08459EC7D60');
  131.         $this->addSql('DROP INDEX omni.IDX_7986D08459EC7D60');
  132.         $this->addSql('DROP INDEX omni.UNIQ_7986D084BA0E79C3');
  133.         $this->addSql('ALTER TABLE omni.conversation ADD channel_id INT NOT NULL');
  134.         $this->addSql('ALTER TABLE omni.conversation DROP assignee_id');
  135.         $this->addSql('ALTER TABLE omni.conversation DROP prospect_contact_id');
  136.         $this->addSql('ALTER TABLE omni.conversation ALTER status SET DEFAULT \'open\'');
  137.         $this->addSql('ALTER TABLE omni.conversation RENAME COLUMN last_message_id TO contact_id');
  138.         $this->addSql('ALTER TABLE omni.conversation ADD CONSTRAINT fk_7986d084e7a1254a FOREIGN KEY (contact_id) REFERENCES omni.contact (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  139.         $this->addSql('ALTER TABLE omni.conversation ADD CONSTRAINT fk_7986d08472f5a1aa FOREIGN KEY (channel_id) REFERENCES omni.channel (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  140.         $this->addSql('CREATE INDEX idx_7986d08472f5a1aa ON omni.conversation (channel_id)');
  141.         $this->addSql('CREATE UNIQUE INDEX uniq_7986d084e7a1254a ON omni.conversation (contact_id)');
  142.         $this->addSql('ALTER TABLE omni.channel DROP identifier');
  143.         $this->addSql('ALTER TABLE omni.channel DROP fb_user_id');
  144.         $this->addSql('ALTER TABLE omni.channel DROP fb_page_id');
  145.         $this->addSql('ALTER TABLE omni.channel DROP fb_user_access_token');
  146.         $this->addSql('ALTER TABLE omni.channel DROP fb_page_access_token');
  147.         $this->addSql('ALTER TABLE omni.channel DROP ig_user_id');
  148.         $this->addSql('ALTER TABLE omni.contact DROP CONSTRAINT FK_B84FA4379AC0396');
  149.         $this->addSql('DROP INDEX omni.IDX_B84FA4379AC0396');
  150.         $this->addSql('ALTER TABLE omni.contact ADD surname VARCHAR(255) DEFAULT NULL');
  151.         $this->addSql('ALTER TABLE omni.contact ADD prospect_contact_id INT DEFAULT NULL');
  152.         $this->addSql('ALTER TABLE omni.contact DROP conversation_id');
  153.     }
  154. }