addSql('CREATE TABLE eflex (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, description VARCHAR(500) NOT NULL, total_amount NUMERIC(10, 2) NOT NULL, state VARCHAR(20) DEFAULT \'draft\' NOT NULL, payment_method VARCHAR(20) DEFAULT \'sepa\' NOT NULL, stripe_customer_id VARCHAR(255) DEFAULT NULL, stripe_payment_method_id VARCHAR(255) DEFAULT NULL, stripe_sepa_last4 VARCHAR(4) DEFAULT NULL, stripe_sepa_bank_name VARCHAR(100) DEFAULT NULL, stripe_sepa_country VARCHAR(2) DEFAULT NULL, submission_id VARCHAR(255) DEFAULT NULL, pdf_unsigned VARCHAR(255) DEFAULT NULL, pdf_signed VARCHAR(255) DEFAULT NULL, pdf_audit VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, customer_id INT NOT NULL, PRIMARY KEY (id))'); $this->addSql('CREATE INDEX IDX_8E24F3579395C3F3 ON eflex (customer_id)'); $this->addSql('CREATE TABLE eflex_line (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, position SMALLINT NOT NULL, amount NUMERIC(10, 2) NOT NULL, scheduled_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, state VARCHAR(20) DEFAULT \'prepared\' NOT NULL, stripe_payment_intent_id VARCHAR(255) DEFAULT NULL, paid_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, failure_reason VARCHAR(255) DEFAULT NULL, paid_method VARCHAR(30) DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, eflex_id INT NOT NULL, PRIMARY KEY (id))'); $this->addSql('CREATE INDEX IDX_8953586C20AB24 ON eflex_line (eflex_id)'); $this->addSql('CREATE INDEX idx_eflex_line_state ON eflex_line (eflex_id, state)'); $this->addSql('ALTER TABLE eflex ADD CONSTRAINT FK_8E24F3579395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE NOT DEFERRABLE'); $this->addSql('ALTER TABLE eflex_line ADD CONSTRAINT FK_8953586C20AB24 FOREIGN KEY (eflex_id) REFERENCES eflex (id) ON DELETE CASCADE NOT DEFERRABLE'); } public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->addSql('ALTER TABLE eflex DROP CONSTRAINT FK_8E24F3579395C3F3'); $this->addSql('ALTER TABLE eflex_line DROP CONSTRAINT FK_8953586C20AB24'); $this->addSql('DROP TABLE eflex'); $this->addSql('DROP TABLE eflex_line'); } }