<?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 Version20220315220133 extends AbstractMigration
{
public function getDescription(): string
{
return 'Initial database state';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE energy_saving_factor (id INT AUTO_INCREMENT NOT NULL, light_technology_id INT NOT NULL, functioning_pattern_id INT NOT NULL, factor NUMERIC(4, 2) DEFAULT \'0.00\' NOT NULL, INDEX IDX_CA5EA732E75EF841 (light_technology_id), INDEX IDX_CA5EA7327E18E746 (functioning_pattern_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE equipment_set (id INT AUTO_INCREMENT NOT NULL, project_id INT NOT NULL, light_technology_id INT DEFAULT NULL, functioning_pattern_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, number_of_replaced_sources INT DEFAULT NULL, investment_amount NUMERIC(8, 2) DEFAULT NULL, maintenance_cost_reduction_per_year NUMERIC(8, 2) DEFAULT NULL, power_per_source_w NUMERIC(6, 2) NOT NULL, electricity_savings_per_year INT DEFAULT 0 NOT NULL, financial_savings_per_year NUMERIC(8, 2) DEFAULT \'0.00\' NOT NULL, years_to_break_even NUMERIC(5, 2) DEFAULT \'0.00\' NOT NULL, INDEX IDX_D794EDBD166D1F9C (project_id), INDEX IDX_D794EDBDE75EF841 (light_technology_id), INDEX IDX_D794EDBD7E18E746 (functioning_pattern_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE ext_translations (id INT AUTO_INCREMENT NOT NULL, locale VARCHAR(8) NOT NULL, object_class VARCHAR(191) NOT NULL, field VARCHAR(32) NOT NULL, foreign_key VARCHAR(64) NOT NULL, content LONGTEXT DEFAULT NULL, INDEX translations_lookup_idx (locale, object_class, foreign_key), INDEX general_translations_lookup_idx (object_class, foreign_key), UNIQUE INDEX lookup_unique_idx (locale, object_class, field, foreign_key), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC');
$this->addSql('CREATE TABLE functioning_pattern (id INT AUTO_INCREMENT NOT NULL, technical_name VARCHAR(255) DEFAULT NULL, display_name VARCHAR(255) NOT NULL, short_display_name VARCHAR(255) DEFAULT NULL, weight INT DEFAULT NULL, enabled TINYINT(1) DEFAULT 1 NOT NULL, listable_group VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE light_technology (id INT AUTO_INCREMENT NOT NULL, technical_name VARCHAR(255) DEFAULT NULL, display_name VARCHAR(255) NOT NULL, short_display_name VARCHAR(255) DEFAULT NULL, weight INT DEFAULT NULL, enabled TINYINT(1) DEFAULT 1 NOT NULL, listable_group VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE organization (id INT AUTO_INCREMENT NOT NULL, address VARCHAR(255) DEFAULT NULL, postal_code VARCHAR(255) DEFAULT NULL, city VARCHAR(255) DEFAULT NULL, country VARCHAR(255) DEFAULT NULL, telephone_number VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, default_electricity_cost_per_unit NUMERIC(3, 2) DEFAULT NULL, logo VARCHAR(255) DEFAULT NULL, updated_at DATETIME DEFAULT NULL, technical_name VARCHAR(255) DEFAULT NULL, display_name VARCHAR(255) NOT NULL, short_display_name VARCHAR(255) DEFAULT NULL, weight INT DEFAULT NULL, enabled TINYINT(1) DEFAULT 1 NOT NULL, listable_group VARCHAR(255) DEFAULT NULL, UNIQUE INDEX id (id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE project (id INT AUTO_INCREMENT NOT NULL, organization_id INT NOT NULL, uuid BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', name VARCHAR(255) NOT NULL, electricity_cost_per_unit NUMERIC(3, 2) NOT NULL, total_electricity_savings_per_year INT DEFAULT 0 NOT NULL, total_financial_savings_per_year NUMERIC(8, 2) DEFAULT \'0.00\' NOT NULL, years_to_break_even NUMERIC(5, 2) DEFAULT \'0.00\' NOT NULL, total_investment NUMERIC(8, 2) DEFAULT \'0.00\', UNIQUE INDEX UNIQ_2FB3D0EED17F50A6 (uuid), INDEX IDX_2FB3D0EE32C8A3DE (organization_id), 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(255) NOT NULL, roles JSON NOT NULL, password VARCHAR(255) NOT NULL, is_verified TINYINT(1) DEFAULT 0 NOT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE energy_saving_factor ADD CONSTRAINT FK_CA5EA732E75EF841 FOREIGN KEY (light_technology_id) REFERENCES light_technology (id)');
$this->addSql('ALTER TABLE energy_saving_factor ADD CONSTRAINT FK_CA5EA7327E18E746 FOREIGN KEY (functioning_pattern_id) REFERENCES functioning_pattern (id)');
$this->addSql('ALTER TABLE equipment_set ADD CONSTRAINT FK_D794EDBD166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE equipment_set ADD CONSTRAINT FK_D794EDBDE75EF841 FOREIGN KEY (light_technology_id) REFERENCES light_technology (id)');
$this->addSql('ALTER TABLE equipment_set ADD CONSTRAINT FK_D794EDBD7E18E746 FOREIGN KEY (functioning_pattern_id) REFERENCES functioning_pattern (id)');
$this->addSql('ALTER TABLE project ADD CONSTRAINT FK_2FB3D0EE32C8A3DE FOREIGN KEY (organization_id) REFERENCES organization (id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE energy_saving_factor DROP FOREIGN KEY FK_CA5EA7327E18E746');
$this->addSql('ALTER TABLE equipment_set DROP FOREIGN KEY FK_D794EDBD7E18E746');
$this->addSql('ALTER TABLE energy_saving_factor DROP FOREIGN KEY FK_CA5EA732E75EF841');
$this->addSql('ALTER TABLE equipment_set DROP FOREIGN KEY FK_D794EDBDE75EF841');
$this->addSql('ALTER TABLE project DROP FOREIGN KEY FK_2FB3D0EE32C8A3DE');
$this->addSql('ALTER TABLE equipment_set DROP FOREIGN KEY FK_D794EDBD166D1F9C');
$this->addSql('DROP TABLE energy_saving_factor');
$this->addSql('DROP TABLE equipment_set');
$this->addSql('DROP TABLE ext_translations');
$this->addSql('DROP TABLE functioning_pattern');
$this->addSql('DROP TABLE light_technology');
$this->addSql('DROP TABLE organization');
$this->addSql('DROP TABLE project');
$this->addSql('DROP TABLE user');
}
}