<?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 Version20220726072232 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 author (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE author_book (author_id INT NOT NULL, book_id INT NOT NULL, INDEX IDX_2F0A2BEEF675F31B (author_id), INDEX IDX_2F0A2BEE16A2B381 (book_id), PRIMARY KEY(author_id, book_id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE book (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, synopsys TEXT DEFAULT NULL, date_added DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', image VARCHAR(255) DEFAULT NULL, updated_at DATETIME DEFAULT NULL, release_date DATE NOT NULL, isbn VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE copy (id INT AUTO_INCREMENT NOT NULL, book_id INT NOT NULL, loan_id INT DEFAULT NULL, qr_code VARCHAR(255) DEFAULT NULL, INDEX IDX_4DBABB8216A2B381 (book_id), UNIQUE INDEX UNIQ_4DBABB82CE73868F (loan_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE device (id INT AUTO_INCREMENT NOT NULL, expo_push_token VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_92FB68EC61E8814 (expo_push_token), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE device_user (device_id INT NOT NULL, user_id INT NOT NULL, INDEX IDX_4AA037394A4C7D4 (device_id), INDEX IDX_4AA0373A76ED395 (user_id), PRIMARY KEY(device_id, user_id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE favorite (book_id INT NOT NULL, user_id INT NOT NULL, INDEX IDX_68C58ED916A2B381 (book_id), INDEX IDX_68C58ED9A76ED395 (user_id), PRIMARY KEY(book_id, user_id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE genre (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_835033F85E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE genre_book (genre_id INT NOT NULL, book_id INT NOT NULL, INDEX IDX_70087AC14296D31F (genre_id), INDEX IDX_70087AC116A2B381 (book_id), PRIMARY KEY(genre_id, book_id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE history (id INT AUTO_INCREMENT NOT NULL, book_id INT NOT NULL, user_id INT DEFAULT NULL, history_type_id INT NOT NULL, date DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_27BA704B16A2B381 (book_id), INDEX IDX_27BA704BA76ED395 (user_id), INDEX IDX_27BA704BE12BA079 (history_type_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE history_type (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_87EB27555E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE loan (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, copy_id INT NOT NULL, issued_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_C5D30D03A76ED395 (user_id), UNIQUE INDEX UNIQ_C5D30D03A8752772 (copy_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE refresh_tokens (id INT AUTO_INCREMENT NOT NULL, refresh_token VARCHAR(128) NOT NULL, username VARCHAR(255) NOT NULL, valid DATETIME NOT NULL, UNIQUE INDEX UNIQ_9BACE7E1C74F2195 (refresh_token), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE review (book_id INT NOT NULL, user_id INT NOT NULL, rating SMALLINT NOT NULL, review LONGTEXT NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL, deleted_at DATETIME DEFAULT NULL, INDEX IDX_794381C616A2B381 (book_id), INDEX IDX_794381C6A76ED395 (user_id), PRIMARY KEY(book_id, user_id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE user (id INT AUTO_INCREMENT NOT NULL, email VARCHAR(180) NOT NULL, roles LONGTEXT NOT NULL COMMENT \'(DC2Type:json)\', password VARCHAR(255) NOT NULL, username VARCHAR(255) DEFAULT NULL, firstname VARCHAR(255) DEFAULT NULL, lastname VARCHAR(255) DEFAULT NULL, birth_date DATE DEFAULT NULL, updated_at DATETIME DEFAULT NULL, photo VARCHAR(255) DEFAULT NULL, password_reset_token VARCHAR(255) DEFAULT NULL, password_reset_expires DATETIME DEFAULT NULL, password_reset_code VARCHAR(8) DEFAULT NULL, deleted_at DATETIME DEFAULT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE author_book ADD CONSTRAINT FK_2F0A2BEEF675F31B FOREIGN KEY (author_id) REFERENCES author (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE author_book ADD CONSTRAINT FK_2F0A2BEE16A2B381 FOREIGN KEY (book_id) REFERENCES book (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE copy ADD CONSTRAINT FK_4DBABB8216A2B381 FOREIGN KEY (book_id) REFERENCES book (id)');
$this->addSql('ALTER TABLE copy ADD CONSTRAINT FK_4DBABB82CE73868F FOREIGN KEY (loan_id) REFERENCES loan (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE device_user ADD CONSTRAINT FK_4AA037394A4C7D4 FOREIGN KEY (device_id) REFERENCES device (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE device_user ADD CONSTRAINT FK_4AA0373A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE favorite ADD CONSTRAINT FK_68C58ED916A2B381 FOREIGN KEY (book_id) REFERENCES book (id)');
$this->addSql('ALTER TABLE favorite ADD CONSTRAINT FK_68C58ED9A76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
$this->addSql('ALTER TABLE genre_book ADD CONSTRAINT FK_70087AC14296D31F FOREIGN KEY (genre_id) REFERENCES genre (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE genre_book ADD CONSTRAINT FK_70087AC116A2B381 FOREIGN KEY (book_id) REFERENCES book (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE history ADD CONSTRAINT FK_27BA704B16A2B381 FOREIGN KEY (book_id) REFERENCES book (id)');
$this->addSql('ALTER TABLE history ADD CONSTRAINT FK_27BA704BA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE history ADD CONSTRAINT FK_27BA704BE12BA079 FOREIGN KEY (history_type_id) REFERENCES history_type (id)');
$this->addSql('ALTER TABLE loan ADD CONSTRAINT FK_C5D30D03A76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
$this->addSql('ALTER TABLE loan ADD CONSTRAINT FK_C5D30D03A8752772 FOREIGN KEY (copy_id) REFERENCES copy (id) ON DELETE RESTRICT');
$this->addSql('ALTER TABLE review ADD CONSTRAINT FK_794381C616A2B381 FOREIGN KEY (book_id) REFERENCES book (id)');
$this->addSql('ALTER TABLE review ADD CONSTRAINT FK_794381C6A76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE author_book DROP FOREIGN KEY FK_2F0A2BEEF675F31B');
$this->addSql('ALTER TABLE author_book DROP FOREIGN KEY FK_2F0A2BEE16A2B381');
$this->addSql('ALTER TABLE copy DROP FOREIGN KEY FK_4DBABB8216A2B381');
$this->addSql('ALTER TABLE favorite DROP FOREIGN KEY FK_68C58ED916A2B381');
$this->addSql('ALTER TABLE genre_book DROP FOREIGN KEY FK_70087AC116A2B381');
$this->addSql('ALTER TABLE history DROP FOREIGN KEY FK_27BA704B16A2B381');
$this->addSql('ALTER TABLE review DROP FOREIGN KEY FK_794381C616A2B381');
$this->addSql('ALTER TABLE loan DROP FOREIGN KEY FK_C5D30D03A8752772');
$this->addSql('ALTER TABLE device_user DROP FOREIGN KEY FK_4AA037394A4C7D4');
$this->addSql('ALTER TABLE genre_book DROP FOREIGN KEY FK_70087AC14296D31F');
$this->addSql('ALTER TABLE history DROP FOREIGN KEY FK_27BA704BE12BA079');
$this->addSql('ALTER TABLE copy DROP FOREIGN KEY FK_4DBABB82CE73868F');
$this->addSql('ALTER TABLE device_user DROP FOREIGN KEY FK_4AA0373A76ED395');
$this->addSql('ALTER TABLE favorite DROP FOREIGN KEY FK_68C58ED9A76ED395');
$this->addSql('ALTER TABLE history DROP FOREIGN KEY FK_27BA704BA76ED395');
$this->addSql('ALTER TABLE loan DROP FOREIGN KEY FK_C5D30D03A76ED395');
$this->addSql('ALTER TABLE review DROP FOREIGN KEY FK_794381C6A76ED395');
$this->addSql('DROP TABLE author');
$this->addSql('DROP TABLE author_book');
$this->addSql('DROP TABLE book');
$this->addSql('DROP TABLE copy');
$this->addSql('DROP TABLE device');
$this->addSql('DROP TABLE device_user');
$this->addSql('DROP TABLE favorite');
$this->addSql('DROP TABLE genre');
$this->addSql('DROP TABLE genre_book');
$this->addSql('DROP TABLE history');
$this->addSql('DROP TABLE history_type');
$this->addSql('DROP TABLE loan');
$this->addSql('DROP TABLE refresh_tokens');
$this->addSql('DROP TABLE review');
$this->addSql('DROP TABLE user');
}
}