<?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 Version20230213151539 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 app_tos (id INT AUTO_INCREMENT NOT NULL, content LONGTEXT NOT NULL, last_update DATETIME DEFAULT NULL, id_customer INT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE author (id INT AUTO_INCREMENT NOT NULL, sql_idc INT NOT NULL, email VARCHAR(255) NOT NULL, google_id VARCHAR(255) NOT NULL, google_full_name VARCHAR(255) NOT NULL, created DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE author_file_versions (author_id INT NOT NULL, file_versions_id INT NOT NULL, INDEX IDX_9BD150A2F675F31B (author_id), INDEX IDX_9BD150A2B5EB0BEF (file_versions_id), PRIMARY KEY(author_id, file_versions_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE customer (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, g_customer_id VARCHAR(255) NOT NULL, g_client_id VARCHAR(255) NOT NULL, g_client_secret VARCHAR(255) NOT NULL, g_redirect_uri VARCHAR(2000) NOT NULL, g_token_string VARCHAR(2000) NOT NULL, g_domain VARCHAR(255) NOT NULL, cod_mec VARCHAR(30) NOT NULL, status INT NOT NULL, tos LONGTEXT NOT NULL, id_anagrafica INT DEFAULT NULL, gruppo_gsuite_operatori VARCHAR(255) NOT NULL, gruppo_gsuite_incaricati VARCHAR(255) DEFAULT NULL, gruppo_gsuite_amministratori VARCHAR(255) NOT NULL, config LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:json)\', app_gaccount VARCHAR(255) NOT NULL, g_token_status SMALLINT DEFAULT NULL, consultation_only INT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE customer_address (id INT AUTO_INCREMENT NOT NULL, customer_id INT NOT NULL, name VARCHAR(255) DEFAULT NULL, vat_number VARCHAR(15) DEFAULT NULL, tax_code VARCHAR(16) DEFAULT NULL, address VARCHAR(255) DEFAULT NULL, zip_code VARCHAR(10) DEFAULT NULL, city VARCHAR(30) DEFAULT NULL, province VARCHAR(30) DEFAULT NULL, region VARCHAR(30) DEFAULT NULL, nation VARCHAR(30) DEFAULT NULL, phone VARCHAR(20) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, pec VARCHAR(255) DEFAULT NULL, sdi_code VARCHAR(15) DEFAULT NULL, INDEX IDX_1193CB3F9395C3F3 (customer_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE customer_contact (id INT AUTO_INCREMENT NOT NULL, customer_id INT NOT NULL, full_name VARCHAR(50) DEFAULT NULL, phone VARCHAR(15) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, details VARCHAR(255) DEFAULT NULL, notification SMALLINT DEFAULT NULL, INDEX IDX_50BF42869395C3F3 (customer_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE customer_details (id INT AUTO_INCREMENT NOT NULL, customer_id INT NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, created_by VARCHAR(255) NOT NULL, updated_by VARCHAR(255) NOT NULL, expiration DATETIME DEFAULT NULL, additional LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:array)\', legal_name VARCHAR(255) DEFAULT NULL, vat_number VARCHAR(15) DEFAULT NULL, tax_code VARCHAR(16) DEFAULT NULL, UNIQUE INDEX UNIQ_6EFBAF349395C3F3 (customer_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE customer_log (id INT AUTO_INCREMENT NOT NULL, customer_id INT NOT NULL, created DATETIME NOT NULL, created_by VARCHAR(255) NOT NULL, content LONGTEXT NOT NULL, INDEX IDX_C0CC36339395C3F3 (customer_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE customer_other_domain (id INT AUTO_INCREMENT NOT NULL, customer_id INT NOT NULL, domain VARCHAR(255) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, created_by VARCHAR(255) NOT NULL, updated_by VARCHAR(255) NOT NULL, status SMALLINT NOT NULL, INDEX IDX_9877E70A9395C3F3 (customer_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE file (id INT AUTO_INCREMENT NOT NULL, file_versions_id INT DEFAULT NULL, google_drive_id VARCHAR(255) DEFAULT NULL, data_scansione DATETIME DEFAULT NULL, sql_idc INT NOT NULL, disabled TINYINT(1) DEFAULT NULL, web_content_link VARCHAR(512) DEFAULT NULL, web_view_link VARCHAR(512) DEFAULT NULL, thumbnail_link VARCHAR(512) DEFAULT NULL, INDEX IDX_8C9F3610B5EB0BEF (file_versions_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE file_drive_permission (id INT AUTO_INCREMENT NOT NULL, file_id INT NOT NULL, drive_permission_id VARCHAR(255) NOT NULL, role VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, google_role VARCHAR(255) DEFAULT NULL, google_type VARCHAR(255) DEFAULT NULL, INDEX IDX_240DE81693CB796C (file_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE file_group (id INT AUTO_INCREMENT NOT NULL, org_unit_id INT DEFAULT NULL, owner_id INT NOT NULL, data_creazione DATETIME DEFAULT CURRENT_TIMESTAMP, data_originale DATETIME NOT NULL, titolo VARCHAR(255) NOT NULL, sql_idc INT NOT NULL, tags LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:json)\', disabled TINYINT(1) DEFAULT NULL, qr_corrispondenti LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:json)\', share_with_authors TINYINT(1) DEFAULT NULL, delegated SMALLINT DEFAULT NULL, INDEX IDX_C743F4F28BC224C3 (org_unit_id), INDEX IDX_C743F4F27E3C61F9 (owner_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE file_versions (id INT AUTO_INCREMENT NOT NULL, file_group_id INT NOT NULL, nomefile VARCHAR(255) NOT NULL, sql_idc INT NOT NULL, disabled TINYINT(1) DEFAULT NULL, share_with_authors TINYINT(1) DEFAULT NULL, INDEX IDX_A88CCF4F4F0456DA (file_group_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE org_unit (id INT AUTO_INCREMENT NOT NULL, google_id VARCHAR(255) DEFAULT NULL, path VARCHAR(5000) NOT NULL, sql_idc INT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE org_unit_author (org_unit_id INT NOT NULL, author_id INT NOT NULL, INDEX IDX_B67A69D88BC224C3 (org_unit_id), INDEX IDX_B67A69D8F675F31B (author_id), PRIMARY KEY(org_unit_id, author_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE owner (id INT AUTO_INCREMENT NOT NULL, sql_idc INT NOT NULL, email VARCHAR(255) NOT NULL, google_id VARCHAR(255) NOT NULL, google_full_name VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE permission (id INT AUTO_INCREMENT NOT NULL, email VARCHAR(255) NOT NULL, sql_idc INT NOT NULL, data_creazione DATETIME NOT NULL, data_aggiornamento DATETIME DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE permission_file_group (permission_id INT NOT NULL, file_group_id INT NOT NULL, INDEX IDX_83652EAFFED90CCA (permission_id), INDEX IDX_83652EAF4F0456DA (file_group_id), PRIMARY KEY(permission_id, file_group_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE permission_file_versions (permission_id INT NOT NULL, file_versions_id INT NOT NULL, INDEX IDX_6532DA80FED90CCA (permission_id), INDEX IDX_6532DA80B5EB0BEF (file_versions_id), PRIMARY KEY(permission_id, file_versions_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE user_consent (id INT AUTO_INCREMENT NOT NULL, email VARCHAR(255) NOT NULL, consent TINYINT(1) DEFAULT NULL, datetime DATETIME DEFAULT NULL, customer_id INT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE author_file_versions ADD CONSTRAINT FK_9BD150A2F675F31B FOREIGN KEY (author_id) REFERENCES author (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE author_file_versions ADD CONSTRAINT FK_9BD150A2B5EB0BEF FOREIGN KEY (file_versions_id) REFERENCES file_versions (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE customer_address ADD CONSTRAINT FK_1193CB3F9395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id)');
$this->addSql('ALTER TABLE customer_contact ADD CONSTRAINT FK_50BF42869395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id)');
$this->addSql('ALTER TABLE customer_details ADD CONSTRAINT FK_6EFBAF349395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id)');
$this->addSql('ALTER TABLE customer_log ADD CONSTRAINT FK_C0CC36339395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id)');
$this->addSql('ALTER TABLE customer_other_domain ADD CONSTRAINT FK_9877E70A9395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id)');
$this->addSql('ALTER TABLE file ADD CONSTRAINT FK_8C9F3610B5EB0BEF FOREIGN KEY (file_versions_id) REFERENCES file_versions (id)');
$this->addSql('ALTER TABLE file_drive_permission ADD CONSTRAINT FK_240DE81693CB796C FOREIGN KEY (file_id) REFERENCES file (id)');
$this->addSql('ALTER TABLE file_group ADD CONSTRAINT FK_C743F4F28BC224C3 FOREIGN KEY (org_unit_id) REFERENCES org_unit (id)');
$this->addSql('ALTER TABLE file_group ADD CONSTRAINT FK_C743F4F27E3C61F9 FOREIGN KEY (owner_id) REFERENCES owner (id)');
$this->addSql('ALTER TABLE file_versions ADD CONSTRAINT FK_A88CCF4F4F0456DA FOREIGN KEY (file_group_id) REFERENCES file_group (id)');
$this->addSql('ALTER TABLE org_unit_author ADD CONSTRAINT FK_B67A69D88BC224C3 FOREIGN KEY (org_unit_id) REFERENCES org_unit (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE org_unit_author ADD CONSTRAINT FK_B67A69D8F675F31B FOREIGN KEY (author_id) REFERENCES author (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE permission_file_group ADD CONSTRAINT FK_83652EAFFED90CCA FOREIGN KEY (permission_id) REFERENCES permission (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE permission_file_group ADD CONSTRAINT FK_83652EAF4F0456DA FOREIGN KEY (file_group_id) REFERENCES file_group (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE permission_file_versions ADD CONSTRAINT FK_6532DA80FED90CCA FOREIGN KEY (permission_id) REFERENCES permission (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE permission_file_versions ADD CONSTRAINT FK_6532DA80B5EB0BEF FOREIGN KEY (file_versions_id) REFERENCES file_versions (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 author_file_versions DROP FOREIGN KEY FK_9BD150A2F675F31B');
$this->addSql('ALTER TABLE org_unit_author DROP FOREIGN KEY FK_B67A69D8F675F31B');
$this->addSql('ALTER TABLE customer_address DROP FOREIGN KEY FK_1193CB3F9395C3F3');
$this->addSql('ALTER TABLE customer_contact DROP FOREIGN KEY FK_50BF42869395C3F3');
$this->addSql('ALTER TABLE customer_details DROP FOREIGN KEY FK_6EFBAF349395C3F3');
$this->addSql('ALTER TABLE customer_log DROP FOREIGN KEY FK_C0CC36339395C3F3');
$this->addSql('ALTER TABLE customer_other_domain DROP FOREIGN KEY FK_9877E70A9395C3F3');
$this->addSql('ALTER TABLE file_drive_permission DROP FOREIGN KEY FK_240DE81693CB796C');
$this->addSql('ALTER TABLE file_versions DROP FOREIGN KEY FK_A88CCF4F4F0456DA');
$this->addSql('ALTER TABLE permission_file_group DROP FOREIGN KEY FK_83652EAF4F0456DA');
$this->addSql('ALTER TABLE author_file_versions DROP FOREIGN KEY FK_9BD150A2B5EB0BEF');
$this->addSql('ALTER TABLE file DROP FOREIGN KEY FK_8C9F3610B5EB0BEF');
$this->addSql('ALTER TABLE permission_file_versions DROP FOREIGN KEY FK_6532DA80B5EB0BEF');
$this->addSql('ALTER TABLE file_group DROP FOREIGN KEY FK_C743F4F28BC224C3');
$this->addSql('ALTER TABLE org_unit_author DROP FOREIGN KEY FK_B67A69D88BC224C3');
$this->addSql('ALTER TABLE file_group DROP FOREIGN KEY FK_C743F4F27E3C61F9');
$this->addSql('ALTER TABLE permission_file_group DROP FOREIGN KEY FK_83652EAFFED90CCA');
$this->addSql('ALTER TABLE permission_file_versions DROP FOREIGN KEY FK_6532DA80FED90CCA');
$this->addSql('DROP TABLE app_tos');
$this->addSql('DROP TABLE author');
$this->addSql('DROP TABLE author_file_versions');
$this->addSql('DROP TABLE customer');
$this->addSql('DROP TABLE customer_address');
$this->addSql('DROP TABLE customer_contact');
$this->addSql('DROP TABLE customer_details');
$this->addSql('DROP TABLE customer_log');
$this->addSql('DROP TABLE customer_other_domain');
$this->addSql('DROP TABLE file');
$this->addSql('DROP TABLE file_drive_permission');
$this->addSql('DROP TABLE file_group');
$this->addSql('DROP TABLE file_versions');
$this->addSql('DROP TABLE org_unit');
$this->addSql('DROP TABLE org_unit_author');
$this->addSql('DROP TABLE owner');
$this->addSql('DROP TABLE permission');
$this->addSql('DROP TABLE permission_file_group');
$this->addSql('DROP TABLE permission_file_versions');
$this->addSql('DROP TABLE user_consent');
}
}