migrations/Version20220607140540.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 Version20220607140540 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('CREATE TABLE account (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, stripe_user_id VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  19.         $this->addSql('CREATE TABLE api_token (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, expire_at DATETIME NOT NULL, INDEX IDX_7BA2F5EBA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  20.         $this->addSql('CREATE TABLE brand (id INT AUTO_INCREMENT NOT NULL, account_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, url VARCHAR(255) DEFAULT NULL, rooms INT DEFAULT NULL, INDEX IDX_1C52F9589B6B5FBA (account_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  21.         $this->addSql('CREATE TABLE brand_contact (brand_id INT NOT NULL, contact_id INT NOT NULL, INDEX IDX_AB59434344F5D008 (brand_id), INDEX IDX_AB594343E7A1254A (contact_id), PRIMARY KEY(brand_id, contact_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  22.         $this->addSql('CREATE TABLE card (id INT AUTO_INCREMENT NOT NULL, company_id INT DEFAULT NULL, stripe_id VARCHAR(255) NOT NULL, last_four VARCHAR(4) NOT NULL, exp_month INT NOT NULL, exp_year INT NOT NULL, brand VARCHAR(50) NOT NULL, fingerprint VARCHAR(255) NOT NULL, INDEX IDX_161498D3979B1AD6 (company_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  23.         $this->addSql('CREATE TABLE company (id INT AUTO_INCREMENT NOT NULL, account_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, address LONGTEXT NOT NULL, zip_code VARCHAR(25) NOT NULL, city VARCHAR(50) NOT NULL, country VARCHAR(50) NOT NULL, INDEX IDX_4FBF094F9B6B5FBA (account_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  24.         $this->addSql('CREATE TABLE company_contact (company_id INT NOT NULL, contact_id INT NOT NULL, INDEX IDX_6C30FCEF979B1AD6 (company_id), INDEX IDX_6C30FCEFE7A1254A (contact_id), PRIMARY KEY(company_id, contact_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  25.         $this->addSql('CREATE TABLE contact (id INT AUTO_INCREMENT NOT NULL, account_id INT DEFAULT NULL, firstname VARCHAR(255) NOT NULL, lastname VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, phone VARCHAR(255) DEFAULT NULL, role VARCHAR(255) NOT NULL, INDEX IDX_4C62E6389B6B5FBA (account_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  26.         $this->addSql('CREATE TABLE permission (id INT AUTO_INCREMENT NOT NULL, account_id INT DEFAULT NULL, user_id INT DEFAULT NULL, INDEX IDX_E04992AA9B6B5FBA (account_id), INDEX IDX_E04992AAA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  27.         $this->addSql('CREATE TABLE price (id INT AUTO_INCREMENT NOT NULL, product_id INT NOT NULL, name VARCHAR(255) NOT NULL, stripe_price_id VARCHAR(255) NOT NULL, amount INT NOT NULL, currency VARCHAR(255) NOT NULL, description VARCHAR(255) DEFAULT NULL, type VARCHAR(255) NOT NULL, recurring TINYINT(1) NOT NULL, recurring_interval VARCHAR(255) DEFAULT NULL, active TINYINT(1) NOT NULL, tiers_mode VARCHAR(255) DEFAULT NULL, tiers LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:json)\', billing_scheme VARCHAR(255) NOT NULL, INDEX IDX_CAC822D94584665A (product_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  28.         $this->addSql('CREATE TABLE product (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, url VARCHAR(255) NOT NULL, stripe_product_id VARCHAR(255) NOT NULL, description VARCHAR(255) DEFAULT NULL, trial_period INT DEFAULT NULL, active TINYINT(1) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  29.         $this->addSql('CREATE TABLE subscription (id INT AUTO_INCREMENT NOT NULL, brand_id INT DEFAULT NULL, card_id INT DEFAULT NULL, stripe_sub_id VARCHAR(255) NOT NULL, status VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL, ended_at DATETIME DEFAULT NULL, current_period_start DATETIME NOT NULL, current_period_end DATETIME NOT NULL, INDEX IDX_A3C664D344F5D008 (brand_id), INDEX IDX_A3C664D34ACC9A20 (card_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  30.         $this->addSql('CREATE TABLE subscription_item (id INT AUTO_INCREMENT NOT NULL, price_id INT DEFAULT NULL, subscription_id INT DEFAULT NULL, stripe_item_id VARCHAR(255) NOT NULL, quantity INT NOT NULL, INDEX IDX_28273500D614C7E7 (price_id), INDEX IDX_282735009A1887DC (subscription_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  31.         $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, firstname VARCHAR(255) NOT NULL, lastname VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  32.         $this->addSql('ALTER TABLE api_token ADD CONSTRAINT FK_7BA2F5EBA76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
  33.         $this->addSql('ALTER TABLE brand ADD CONSTRAINT FK_1C52F9589B6B5FBA FOREIGN KEY (account_id) REFERENCES account (id)');
  34.         $this->addSql('ALTER TABLE brand_contact ADD CONSTRAINT FK_AB59434344F5D008 FOREIGN KEY (brand_id) REFERENCES brand (id) ON DELETE CASCADE');
  35.         $this->addSql('ALTER TABLE brand_contact ADD CONSTRAINT FK_AB594343E7A1254A FOREIGN KEY (contact_id) REFERENCES contact (id) ON DELETE CASCADE');
  36.         $this->addSql('ALTER TABLE card ADD CONSTRAINT FK_161498D3979B1AD6 FOREIGN KEY (company_id) REFERENCES company (id)');
  37.         $this->addSql('ALTER TABLE company ADD CONSTRAINT FK_4FBF094F9B6B5FBA FOREIGN KEY (account_id) REFERENCES account (id)');
  38.         $this->addSql('ALTER TABLE company_contact ADD CONSTRAINT FK_6C30FCEF979B1AD6 FOREIGN KEY (company_id) REFERENCES company (id) ON DELETE CASCADE');
  39.         $this->addSql('ALTER TABLE company_contact ADD CONSTRAINT FK_6C30FCEFE7A1254A FOREIGN KEY (contact_id) REFERENCES contact (id) ON DELETE CASCADE');
  40.         $this->addSql('ALTER TABLE contact ADD CONSTRAINT FK_4C62E6389B6B5FBA FOREIGN KEY (account_id) REFERENCES account (id)');
  41.         $this->addSql('ALTER TABLE permission ADD CONSTRAINT FK_E04992AA9B6B5FBA FOREIGN KEY (account_id) REFERENCES account (id)');
  42.         $this->addSql('ALTER TABLE permission ADD CONSTRAINT FK_E04992AAA76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
  43.         $this->addSql('ALTER TABLE price ADD CONSTRAINT FK_CAC822D94584665A FOREIGN KEY (product_id) REFERENCES product (id)');
  44.         $this->addSql('ALTER TABLE subscription ADD CONSTRAINT FK_A3C664D344F5D008 FOREIGN KEY (brand_id) REFERENCES brand (id)');
  45.         $this->addSql('ALTER TABLE subscription ADD CONSTRAINT FK_A3C664D34ACC9A20 FOREIGN KEY (card_id) REFERENCES card (id)');
  46.         $this->addSql('ALTER TABLE subscription_item ADD CONSTRAINT FK_28273500D614C7E7 FOREIGN KEY (price_id) REFERENCES price (id)');
  47.         $this->addSql('ALTER TABLE subscription_item ADD CONSTRAINT FK_282735009A1887DC FOREIGN KEY (subscription_id) REFERENCES subscription (id)');
  48.     }
  49.     public function down(Schema $schema): void
  50.     {
  51.         // this down() migration is auto-generated, please modify it to your needs
  52.         $this->addSql('ALTER TABLE brand DROP FOREIGN KEY FK_1C52F9589B6B5FBA');
  53.         $this->addSql('ALTER TABLE company DROP FOREIGN KEY FK_4FBF094F9B6B5FBA');
  54.         $this->addSql('ALTER TABLE contact DROP FOREIGN KEY FK_4C62E6389B6B5FBA');
  55.         $this->addSql('ALTER TABLE permission DROP FOREIGN KEY FK_E04992AA9B6B5FBA');
  56.         $this->addSql('ALTER TABLE brand_contact DROP FOREIGN KEY FK_AB59434344F5D008');
  57.         $this->addSql('ALTER TABLE subscription DROP FOREIGN KEY FK_A3C664D344F5D008');
  58.         $this->addSql('ALTER TABLE subscription DROP FOREIGN KEY FK_A3C664D34ACC9A20');
  59.         $this->addSql('ALTER TABLE card DROP FOREIGN KEY FK_161498D3979B1AD6');
  60.         $this->addSql('ALTER TABLE company_contact DROP FOREIGN KEY FK_6C30FCEF979B1AD6');
  61.         $this->addSql('ALTER TABLE brand_contact DROP FOREIGN KEY FK_AB594343E7A1254A');
  62.         $this->addSql('ALTER TABLE company_contact DROP FOREIGN KEY FK_6C30FCEFE7A1254A');
  63.         $this->addSql('ALTER TABLE subscription_item DROP FOREIGN KEY FK_28273500D614C7E7');
  64.         $this->addSql('ALTER TABLE price DROP FOREIGN KEY FK_CAC822D94584665A');
  65.         $this->addSql('ALTER TABLE subscription_item DROP FOREIGN KEY FK_282735009A1887DC');
  66.         $this->addSql('ALTER TABLE api_token DROP FOREIGN KEY FK_7BA2F5EBA76ED395');
  67.         $this->addSql('ALTER TABLE permission DROP FOREIGN KEY FK_E04992AAA76ED395');
  68.         $this->addSql('DROP TABLE account');
  69.         $this->addSql('DROP TABLE api_token');
  70.         $this->addSql('DROP TABLE brand');
  71.         $this->addSql('DROP TABLE brand_contact');
  72.         $this->addSql('DROP TABLE card');
  73.         $this->addSql('DROP TABLE company');
  74.         $this->addSql('DROP TABLE company_contact');
  75.         $this->addSql('DROP TABLE contact');
  76.         $this->addSql('DROP TABLE permission');
  77.         $this->addSql('DROP TABLE price');
  78.         $this->addSql('DROP TABLE product');
  79.         $this->addSql('DROP TABLE subscription');
  80.         $this->addSql('DROP TABLE subscription_item');
  81.         $this->addSql('DROP TABLE user');
  82.     }
  83. }