<?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 Version20211105134005 extends AbstractMigration
{
public function getDescription(): string
{
return 'First migration: creation of the first DB structure';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE client (id INT AUTO_INCREMENT NOT NULL, user_object_id INT NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, payment_uid VARCHAR(255) DEFAULT NULL, updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', UNIQUE INDEX UNIQ_C744045523CDDBCF (user_object_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE company (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, name VARCHAR(255) NOT NULL, image VARCHAR(255) DEFAULT NULL, updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', UNIQUE INDEX UNIQ_4FBF094FA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE config (id INT AUTO_INCREMENT NOT NULL, field VARCHAR(255) NOT NULL, value LONGTEXT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE email_programmation (id INT AUTO_INCREMENT NOT NULL, client_id INT NOT NULL, template LONGTEXT NOT NULL, sending_date DATETIME NOT NULL, sender VARCHAR(255) NOT NULL, reciever VARCHAR(255) NOT NULL, object VARCHAR(255) NOT NULL, cc VARCHAR(255) DEFAULT NULL, cci VARCHAR(255) DEFAULT NULL, detail JSON DEFAULT NULL, content LONGTEXT NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_ACA8934B19EB6921 (client_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE event (id INT AUTO_INCREMENT NOT NULL, parent_id INT DEFAULT NULL, workshop_id INT NOT NULL, room_id INT NOT NULL, specialist_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, description LONGTEXT NOT NULL, duration INT NOT NULL, capacity INT NOT NULL, price DOUBLE PRECISION NOT NULL, start DATETIME NOT NULL, end DATETIME NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_3BAE0AA7727ACA70 (parent_id), INDEX IDX_3BAE0AA71FDCE57C (workshop_id), INDEX IDX_3BAE0AA754177093 (room_id), INDEX IDX_3BAE0AA77B100C1A (specialist_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE pub (id INT AUTO_INCREMENT NOT NULL, start DATETIME NOT NULL, end DATETIME NOT NULL, image VARCHAR(255) NOT NULL, description LONGTEXT NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE pub_client (pub_id INT NOT NULL, client_id INT NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', hide TINYINT(1) NOT NULL, INDEX IDX_9E22F01A83FDE077 (pub_id), INDEX IDX_9E22F01A19EB6921 (client_id), PRIMARY KEY(pub_id, client_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE registration (id INT AUTO_INCREMENT NOT NULL, event_id INT NOT NULL, client_id INT NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', payment VARCHAR(255) DEFAULT NULL, price_ht DOUBLE PRECISION NOT NULL, price DOUBLE PRECISION NOT NULL, status VARCHAR(255) NOT NULL, payment_status VARCHAR(255) DEFAULT NULL, presence TINYINT(1) NOT NULL, stats_code VARCHAR(255) NOT NULL, updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_62A8A7A771F7E88B (event_id), INDEX IDX_62A8A7A719EB6921 (client_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE room (id INT AUTO_INCREMENT NOT NULL, company_id INT NOT NULL, name VARCHAR(255) NOT NULL, description LONGTEXT NOT NULL, capacity INT NOT NULL, image VARCHAR(255) NOT NULL, longitude VARCHAR(50) NOT NULL, latitude VARCHAR(50) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_729F519B979B1AD6 (company_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE specialist (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', image VARCHAR(255) DEFAULT NULL, updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', UNIQUE INDEX UNIQ_C2274AF4A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE specialist_tag (tag_id INT NOT NULL, specialist_id INT NOT NULL, INDEX IDX_95443666BAD26311 (tag_id), INDEX IDX_954436667B100C1A (specialist_id), PRIMARY KEY(tag_id, specialist_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE tag (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE `user` (id INT AUTO_INCREMENT NOT NULL, email VARCHAR(180) NOT NULL, roles JSON NOT NULL, password VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', last_login DATETIME DEFAULT NULL, name VARCHAR(255) NOT NULL, category VARCHAR(50) NOT NULL, active TINYINT(1) NOT NULL, ban_start DATETIME DEFAULT NULL, ban_end DATETIME DEFAULT NULL, reset_token VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_8D93D649D7C8DC19 (reset_token), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE workshop (id INT AUTO_INCREMENT NOT NULL, tag_id INT NOT NULL, company_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, description LONGTEXT NOT NULL, duration INT NOT NULL, capacity INT NOT NULL, price DOUBLE PRECISION DEFAULT NULL, tva DOUBLE PRECISION DEFAULT NULL, color VARCHAR(50) NOT NULL, image VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_9B6F02C4BAD26311 (tag_id), INDEX IDX_9B6F02C4979B1AD6 (company_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE client ADD CONSTRAINT FK_C744045523CDDBCF FOREIGN KEY (user_object_id) REFERENCES `user` (id)');
$this->addSql('ALTER TABLE company ADD CONSTRAINT FK_4FBF094FA76ED395 FOREIGN KEY (user_id) REFERENCES `user` (id)');
$this->addSql('ALTER TABLE email_programmation ADD CONSTRAINT FK_ACA8934B19EB6921 FOREIGN KEY (client_id) REFERENCES client (id)');
$this->addSql('ALTER TABLE event ADD CONSTRAINT FK_3BAE0AA7727ACA70 FOREIGN KEY (parent_id) REFERENCES event (id)');
$this->addSql('ALTER TABLE event ADD CONSTRAINT FK_3BAE0AA71FDCE57C FOREIGN KEY (workshop_id) REFERENCES workshop (id)');
$this->addSql('ALTER TABLE event ADD CONSTRAINT FK_3BAE0AA754177093 FOREIGN KEY (room_id) REFERENCES room (id)');
$this->addSql('ALTER TABLE event ADD CONSTRAINT FK_3BAE0AA77B100C1A FOREIGN KEY (specialist_id) REFERENCES specialist (id)');
$this->addSql('ALTER TABLE pub_client ADD CONSTRAINT FK_9E22F01A83FDE077 FOREIGN KEY (pub_id) REFERENCES pub (id)');
$this->addSql('ALTER TABLE pub_client ADD CONSTRAINT FK_9E22F01A19EB6921 FOREIGN KEY (client_id) REFERENCES client (id)');
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A771F7E88B FOREIGN KEY (event_id) REFERENCES event (id)');
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A719EB6921 FOREIGN KEY (client_id) REFERENCES client (id)');
$this->addSql('ALTER TABLE room ADD CONSTRAINT FK_729F519B979B1AD6 FOREIGN KEY (company_id) REFERENCES company (id)');
$this->addSql('ALTER TABLE specialist ADD CONSTRAINT FK_C2274AF4A76ED395 FOREIGN KEY (user_id) REFERENCES `user` (id)');
$this->addSql('ALTER TABLE specialist_tag ADD CONSTRAINT FK_95443666BAD26311 FOREIGN KEY (tag_id) REFERENCES tag (id)');
$this->addSql('ALTER TABLE specialist_tag ADD CONSTRAINT FK_954436667B100C1A FOREIGN KEY (specialist_id) REFERENCES specialist (id)');
$this->addSql('ALTER TABLE workshop ADD CONSTRAINT FK_9B6F02C4BAD26311 FOREIGN KEY (tag_id) REFERENCES tag (id)');
$this->addSql('ALTER TABLE workshop ADD CONSTRAINT FK_9B6F02C4979B1AD6 FOREIGN KEY (company_id) REFERENCES company (id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE email_programmation DROP FOREIGN KEY FK_ACA8934B19EB6921');
$this->addSql('ALTER TABLE pub_client DROP FOREIGN KEY FK_9E22F01A19EB6921');
$this->addSql('ALTER TABLE registration DROP FOREIGN KEY FK_62A8A7A719EB6921');
$this->addSql('ALTER TABLE room DROP FOREIGN KEY FK_729F519B979B1AD6');
$this->addSql('ALTER TABLE workshop DROP FOREIGN KEY FK_9B6F02C4979B1AD6');
$this->addSql('ALTER TABLE event DROP FOREIGN KEY FK_3BAE0AA7727ACA70');
$this->addSql('ALTER TABLE registration DROP FOREIGN KEY FK_62A8A7A771F7E88B');
$this->addSql('ALTER TABLE pub_client DROP FOREIGN KEY FK_9E22F01A83FDE077');
$this->addSql('ALTER TABLE event DROP FOREIGN KEY FK_3BAE0AA754177093');
$this->addSql('ALTER TABLE event DROP FOREIGN KEY FK_3BAE0AA77B100C1A');
$this->addSql('ALTER TABLE specialist_tag DROP FOREIGN KEY FK_954436667B100C1A');
$this->addSql('ALTER TABLE specialist_tag DROP FOREIGN KEY FK_95443666BAD26311');
$this->addSql('ALTER TABLE workshop DROP FOREIGN KEY FK_9B6F02C4BAD26311');
$this->addSql('ALTER TABLE client DROP FOREIGN KEY FK_C744045523CDDBCF');
$this->addSql('ALTER TABLE company DROP FOREIGN KEY FK_4FBF094FA76ED395');
$this->addSql('ALTER TABLE specialist DROP FOREIGN KEY FK_C2274AF4A76ED395');
$this->addSql('ALTER TABLE event DROP FOREIGN KEY FK_3BAE0AA71FDCE57C');
$this->addSql('DROP TABLE client');
$this->addSql('DROP TABLE company');
$this->addSql('DROP TABLE config');
$this->addSql('DROP TABLE email_programmation');
$this->addSql('DROP TABLE event');
$this->addSql('DROP TABLE pub');
$this->addSql('DROP TABLE pub_client');
$this->addSql('DROP TABLE registration');
$this->addSql('DROP TABLE room');
$this->addSql('DROP TABLE specialist');
$this->addSql('DROP TABLE specialist_tag');
$this->addSql('DROP TABLE tag');
$this->addSql('DROP TABLE `user`');
$this->addSql('DROP TABLE workshop');
}
}