addSql('CREATE TABLE task_recurrence (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, type VARCHAR(255) NOT NULL, interval INT NOT NULL, days_of_week JSON DEFAULT NULL, day_of_month INT DEFAULT NULL, week_of_month INT DEFAULT NULL, end_date DATE DEFAULT NULL, max_occurrences INT DEFAULT NULL, occurrence_count INT NOT NULL, version INT DEFAULT 1 NOT NULL, PRIMARY KEY (id))'); $this->addSql('CREATE TABLE zimbra_configuration (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, server_url VARCHAR(255) DEFAULT NULL, username VARCHAR(255) DEFAULT NULL, encrypted_password TEXT DEFAULT NULL, calendar_path VARCHAR(255) DEFAULT NULL, enabled BOOLEAN NOT NULL, PRIMARY KEY (id))'); $this->addSql('ALTER TABLE task ADD scheduled_start TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL'); $this->addSql('ALTER TABLE task ADD scheduled_end TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL'); $this->addSql('ALTER TABLE task ADD deadline TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL'); $this->addSql('ALTER TABLE task ADD sync_to_calendar BOOLEAN DEFAULT false NOT NULL'); $this->addSql('ALTER TABLE task ADD calendar_event_uid VARCHAR(255) DEFAULT NULL'); $this->addSql('ALTER TABLE task ADD calendar_todo_uid VARCHAR(255) DEFAULT NULL'); $this->addSql('ALTER TABLE task ADD calendar_sync_error TEXT DEFAULT NULL'); $this->addSql('ALTER TABLE task ADD recurrence_id INT DEFAULT NULL'); $this->addSql('ALTER TABLE task ADD CONSTRAINT FK_527EDB252C414CE8 FOREIGN KEY (recurrence_id) REFERENCES task_recurrence (id) ON DELETE SET NULL NOT DEFERRABLE'); $this->addSql('CREATE INDEX IDX_527EDB252C414CE8 ON task (recurrence_id)'); } public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->addSql('DROP TABLE task_recurrence'); $this->addSql('DROP TABLE zimbra_configuration'); $this->addSql('ALTER TABLE task DROP CONSTRAINT FK_527EDB252C414CE8'); $this->addSql('DROP INDEX IDX_527EDB252C414CE8'); $this->addSql('ALTER TABLE task DROP scheduled_start'); $this->addSql('ALTER TABLE task DROP scheduled_end'); $this->addSql('ALTER TABLE task DROP deadline'); $this->addSql('ALTER TABLE task DROP sync_to_calendar'); $this->addSql('ALTER TABLE task DROP calendar_event_uid'); $this->addSql('ALTER TABLE task DROP calendar_todo_uid'); $this->addSql('ALTER TABLE task DROP calendar_sync_error'); $this->addSql('ALTER TABLE task DROP recurrence_id'); } }