<?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 Version20230307062659 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('DROP SEQUENCE omni.message_id_seq CASCADE');
$this->addSql('DROP SEQUENCE omni.message_attachment_id_seq CASCADE');
$this->addSql('DROP SEQUENCE omni.channel_facebook_id_seq CASCADE');
$this->addSql('DROP SEQUENCE omni.channel_instagram_id_seq CASCADE');
$this->addSql('CREATE SEQUENCE omni.activity_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE omni.activity_attachment_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$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))');
$this->addSql('CREATE INDEX IDX_3C3F39899AC0396 ON omni.activity (conversation_id)');
$this->addSql('CREATE INDEX IDX_3C3F3989E7A1254A ON omni.activity (contact_id)');
$this->addSql('CREATE INDEX IDX_3C3F39892837A9A ON omni.activity (tenant_person_id)');
$this->addSql('CREATE INDEX IDX_3C3F39894D951D92 ON omni.activity (event_from_tenant_person_id)');
$this->addSql('CREATE INDEX IDX_3C3F3989CFEF8085 ON omni.activity (event_to_tenant_person_id)');
$this->addSql('CREATE INDEX IDX_3C3F39899033212A ON omni.activity (tenant_id)');
$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))');
$this->addSql('CREATE INDEX IDX_A1B4C21A81C06096 ON omni.activity_attachment (activity_id)');
$this->addSql('CREATE INDEX IDX_A1B4C21A464E68B ON omni.activity_attachment (attachment_id)');
$this->addSql('CREATE INDEX IDX_A1B4C21A9033212A ON omni.activity_attachment (tenant_id)');
$this->addSql('ALTER TABLE omni.activity ADD CONSTRAINT FK_3C3F39899AC0396 FOREIGN KEY (conversation_id) REFERENCES omni.conversation (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.activity ADD CONSTRAINT FK_3C3F3989E7A1254A FOREIGN KEY (contact_id) REFERENCES omni.contact (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.activity ADD CONSTRAINT FK_3C3F39892837A9A FOREIGN KEY (tenant_person_id) REFERENCES account.tenant_person (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$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');
$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');
$this->addSql('ALTER TABLE omni.activity ADD CONSTRAINT FK_3C3F39899033212A FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.activity_attachment ADD CONSTRAINT FK_A1B4C21A81C06096 FOREIGN KEY (activity_id) REFERENCES omni.activity (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.activity_attachment ADD CONSTRAINT FK_A1B4C21A464E68B FOREIGN KEY (attachment_id) REFERENCES system.attachment (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.activity_attachment ADD CONSTRAINT FK_A1B4C21A9033212A FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.channel_facebook DROP CONSTRAINT fk_88acb25b72f5a1aa');
$this->addSql('ALTER TABLE omni.channel_facebook DROP CONSTRAINT fk_88acb25b9033212a');
$this->addSql('ALTER TABLE omni.message_attachment DROP CONSTRAINT fk_b7a7a93b537a1329');
$this->addSql('ALTER TABLE omni.message_attachment DROP CONSTRAINT fk_b7a7a93b9033212a');
$this->addSql('ALTER TABLE omni.message_attachment DROP CONSTRAINT fk_b7a7a93b464e68b');
$this->addSql('ALTER TABLE omni.channel_instagram DROP CONSTRAINT fk_d8f8ccbd72f5a1aa');
$this->addSql('ALTER TABLE omni.channel_instagram DROP CONSTRAINT fk_d8f8ccbd9033212a');
$this->addSql('ALTER TABLE omni.message DROP CONSTRAINT fk_429072709ac0396');
$this->addSql('ALTER TABLE omni.message DROP CONSTRAINT fk_429072709033212a');
$this->addSql('ALTER TABLE omni.message DROP CONSTRAINT fk_4290727072f5a1aa');
$this->addSql('DROP TABLE omni.channel_facebook');
$this->addSql('DROP TABLE omni.message_attachment');
$this->addSql('DROP TABLE omni.channel_instagram');
$this->addSql('DROP TABLE omni.message');
$this->addSql('ALTER TABLE omni.channel ADD identifier TEXT NOT NULL');
$this->addSql('ALTER TABLE omni.channel ADD fb_user_id BIGINT DEFAULT NULL');
$this->addSql('ALTER TABLE omni.channel ADD fb_page_id BIGINT DEFAULT NULL');
$this->addSql('ALTER TABLE omni.channel ADD fb_user_access_token TEXT DEFAULT NULL');
$this->addSql('ALTER TABLE omni.channel ADD fb_page_access_token TEXT DEFAULT NULL');
$this->addSql('ALTER TABLE omni.channel ADD ig_user_id BIGINT DEFAULT NULL');
$this->addSql('ALTER TABLE omni.contact ADD conversation_id INT NOT NULL');
$this->addSql('ALTER TABLE omni.contact DROP surname');
$this->addSql('ALTER TABLE omni.contact DROP prospect_contact_id');
$this->addSql('ALTER TABLE omni.contact ADD CONSTRAINT FK_B84FA4379AC0396 FOREIGN KEY (conversation_id) REFERENCES omni.conversation (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE INDEX IDX_B84FA4379AC0396 ON omni.contact (conversation_id)');
$this->addSql('ALTER TABLE omni.conversation DROP CONSTRAINT fk_7986d084e7a1254a');
$this->addSql('ALTER TABLE omni.conversation DROP CONSTRAINT fk_7986d08472f5a1aa');
$this->addSql('DROP INDEX omni.idx_7986d08472f5a1aa');
$this->addSql('DROP INDEX omni.uniq_7986d084e7a1254a');
$this->addSql('ALTER TABLE omni.conversation ADD assignee_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE omni.conversation ADD last_message_id INT NOT NULL');
$this->addSql('ALTER TABLE omni.conversation ADD prospect_contact_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE omni.conversation DROP contact_id');
$this->addSql('ALTER TABLE omni.conversation DROP channel_id');
$this->addSql('ALTER TABLE omni.conversation ALTER status DROP DEFAULT');
$this->addSql('ALTER TABLE omni.conversation ADD CONSTRAINT FK_7986D08459EC7D60 FOREIGN KEY (assignee_id) REFERENCES account.tenant_person (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.conversation ADD CONSTRAINT FK_7986D084BA0E79C3 FOREIGN KEY (last_message_id) REFERENCES omni.activity (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE INDEX IDX_7986D08459EC7D60 ON omni.conversation (assignee_id)');
$this->addSql('CREATE UNIQUE INDEX UNIQ_7986D084BA0E79C3 ON omni.conversation (last_message_id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE omni.conversation DROP CONSTRAINT FK_7986D084BA0E79C3');
$this->addSql('DROP SEQUENCE omni.activity_id_seq CASCADE');
$this->addSql('DROP SEQUENCE omni.activity_attachment_id_seq CASCADE');
$this->addSql('CREATE SEQUENCE omni.message_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE omni.message_attachment_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE omni.channel_facebook_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE omni.channel_instagram_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$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))');
$this->addSql('CREATE INDEX idx_88acb25b9033212a ON omni.channel_facebook (tenant_id)');
$this->addSql('CREATE UNIQUE INDEX uniq_88acb25b72f5a1aa ON omni.channel_facebook (channel_id)');
$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))');
$this->addSql('CREATE INDEX idx_b7a7a93b464e68b ON omni.message_attachment (attachment_id)');
$this->addSql('CREATE INDEX idx_b7a7a93b9033212a ON omni.message_attachment (tenant_id)');
$this->addSql('CREATE INDEX idx_b7a7a93b537a1329 ON omni.message_attachment (message_id)');
$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))');
$this->addSql('CREATE INDEX idx_d8f8ccbd9033212a ON omni.channel_instagram (tenant_id)');
$this->addSql('CREATE UNIQUE INDEX uniq_d8f8ccbd72f5a1aa ON omni.channel_instagram (channel_id)');
$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))');
$this->addSql('CREATE INDEX idx_4290727072f5a1aa ON omni.message (channel_id)');
$this->addSql('CREATE INDEX idx_429072709033212a ON omni.message (tenant_id)');
$this->addSql('CREATE INDEX idx_429072709ac0396 ON omni.message (conversation_id)');
$this->addSql('ALTER TABLE omni.channel_facebook ADD CONSTRAINT fk_88acb25b72f5a1aa FOREIGN KEY (channel_id) REFERENCES omni.channel (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.channel_facebook ADD CONSTRAINT fk_88acb25b9033212a FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.message_attachment ADD CONSTRAINT fk_b7a7a93b537a1329 FOREIGN KEY (message_id) REFERENCES omni.message (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.message_attachment ADD CONSTRAINT fk_b7a7a93b9033212a FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.message_attachment ADD CONSTRAINT fk_b7a7a93b464e68b FOREIGN KEY (attachment_id) REFERENCES system.attachment (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.channel_instagram ADD CONSTRAINT fk_d8f8ccbd72f5a1aa FOREIGN KEY (channel_id) REFERENCES omni.channel (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.channel_instagram ADD CONSTRAINT fk_d8f8ccbd9033212a FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.message ADD CONSTRAINT fk_429072709ac0396 FOREIGN KEY (conversation_id) REFERENCES omni.conversation (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.message ADD CONSTRAINT fk_429072709033212a FOREIGN KEY (tenant_id) REFERENCES account.tenant (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.message ADD CONSTRAINT fk_4290727072f5a1aa FOREIGN KEY (channel_id) REFERENCES omni.channel (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F39899AC0396');
$this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F3989E7A1254A');
$this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F39892837A9A');
$this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F39894D951D92');
$this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F3989CFEF8085');
$this->addSql('ALTER TABLE omni.activity DROP CONSTRAINT FK_3C3F39899033212A');
$this->addSql('ALTER TABLE omni.activity_attachment DROP CONSTRAINT FK_A1B4C21A81C06096');
$this->addSql('ALTER TABLE omni.activity_attachment DROP CONSTRAINT FK_A1B4C21A464E68B');
$this->addSql('ALTER TABLE omni.activity_attachment DROP CONSTRAINT FK_A1B4C21A9033212A');
$this->addSql('DROP TABLE omni.activity');
$this->addSql('DROP TABLE omni.activity_attachment');
$this->addSql('ALTER TABLE omni.conversation DROP CONSTRAINT FK_7986D08459EC7D60');
$this->addSql('DROP INDEX omni.IDX_7986D08459EC7D60');
$this->addSql('DROP INDEX omni.UNIQ_7986D084BA0E79C3');
$this->addSql('ALTER TABLE omni.conversation ADD channel_id INT NOT NULL');
$this->addSql('ALTER TABLE omni.conversation DROP assignee_id');
$this->addSql('ALTER TABLE omni.conversation DROP prospect_contact_id');
$this->addSql('ALTER TABLE omni.conversation ALTER status SET DEFAULT \'open\'');
$this->addSql('ALTER TABLE omni.conversation RENAME COLUMN last_message_id TO contact_id');
$this->addSql('ALTER TABLE omni.conversation ADD CONSTRAINT fk_7986d084e7a1254a FOREIGN KEY (contact_id) REFERENCES omni.contact (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE omni.conversation ADD CONSTRAINT fk_7986d08472f5a1aa FOREIGN KEY (channel_id) REFERENCES omni.channel (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE INDEX idx_7986d08472f5a1aa ON omni.conversation (channel_id)');
$this->addSql('CREATE UNIQUE INDEX uniq_7986d084e7a1254a ON omni.conversation (contact_id)');
$this->addSql('ALTER TABLE omni.channel DROP identifier');
$this->addSql('ALTER TABLE omni.channel DROP fb_user_id');
$this->addSql('ALTER TABLE omni.channel DROP fb_page_id');
$this->addSql('ALTER TABLE omni.channel DROP fb_user_access_token');
$this->addSql('ALTER TABLE omni.channel DROP fb_page_access_token');
$this->addSql('ALTER TABLE omni.channel DROP ig_user_id');
$this->addSql('ALTER TABLE omni.contact DROP CONSTRAINT FK_B84FA4379AC0396');
$this->addSql('DROP INDEX omni.IDX_B84FA4379AC0396');
$this->addSql('ALTER TABLE omni.contact ADD surname VARCHAR(255) DEFAULT NULL');
$this->addSql('ALTER TABLE omni.contact ADD prospect_contact_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE omni.contact DROP conversation_id');
}
}