<?php
/* @noinspection PhpUnused */
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 Version20230511123822 extends AbstractMigration
{
public function getDescription(): string
{
return
"- Introduces OIM task table and localizations.\n" .
"- Seeding of oim_task table.\n" .
"- Seeding of oim_task localizations with German and English";
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql(
'
CREATE TABLE oim_task (
id INT AUTO_INCREMENT NOT NULL COMMENT \'Internal ID\',
created INT NOT NULL COMMENT \'Entity creation date as UNIX timestamp\',
active SMALLINT DEFAULT 1 NOT NULL COMMENT \'Indicator if entity is active\',
last_active_date DATE DEFAULT NULL COMMENT \'Last active date\',
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB;
'
);
$this->addSql(
'
CREATE TABLE oim_task_l10n (
parent_entity_id INT NOT NULL COMMENT \'Internal ID\',
language_id VARCHAR(2) NOT NULL COMMENT \'Language code in lower case (ISO 639-1)\',
name VARCHAR(225) DEFAULT NULL COMMENT \'OIM task name in referenced language\',
INDEX IDX_D5B8FBF3706E52B3 (parent_entity_id),
INDEX IDX_D5B8FBF382F1BAF4 (language_id),
PRIMARY KEY(parent_entity_id, language_id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB;
'
);
$this->addSql(
'
ALTER TABLE oim_task_l10n ADD CONSTRAINT FK_D61B7206706E52B3 FOREIGN KEY
(parent_entity_id) REFERENCES oim_task (id) ON DELETE CASCADE;
'
);
$this->addSql(
'
ALTER TABLE oim_task_l10n ADD CONSTRAINT FK_D61B720682F1BAF4 FOREIGN KEY
(language_id) REFERENCES language (id) ON DELETE CASCADE;
'
);
$created = time();
$this->addSql(
'
INSERT INTO oim_task
(id, created, active)
VALUES
(1, :createdTimeStamp, 1),
(2, :createdTimeStamp, 1),
(3, :createdTimeStamp, 1),
(4, :createdTimeStamp, 1),
(5, :createdTimeStamp, 1),
(6, :createdTimeStamp, 1),
(7, :createdTimeStamp, 1),
(8, :createdTimeStamp, 1),
(9, :createdTimeStamp, 1),
(10, :createdTimeStamp, 1),
(11, :createdTimeStamp, 1),
(12, :createdTimeStamp, 1),
(13, :createdTimeStamp, 1),
(14, :createdTimeStamp, 1),
(15, :createdTimeStamp, 1),
(16, :createdTimeStamp, 1),
(17, :createdTimeStamp, 1),
(18, :createdTimeStamp, 1),
(19, :createdTimeStamp, 1),
(20, :createdTimeStamp, 1),
(21, :createdTimeStamp, 1)
;
',
['createdTimeStamp' => $created]
);
$this->addSql(
'
INSERT INTO oim_task_l10n
(language_id, parent_entity_id, name)
VALUES
(\'de\', 1, \'Mitarbeiter anrufen (Termin siehe Beschreibung)\'),
(\'de\', 2, \'Meeting (Termin siehe Beschreibung)\'),
(\'de\', 3, \'Mitarbeiter meldet sich\'),
(\'de\', 4, \'Termin mit Betriebsarzt (Termin siehe Beschreibung)\'),
(\'de\', 5, \'Org: Termin beim Betriebsarzt vereinbaren\'),
(\'de\', 6, \'Org: Termin mit MA vereinbaren\'),
(\'de\', 7, \'Org: Termin mit MA + Mng wgn laufender Maßnahme\'),
(\'de\', 8, \'Org: Anrufen\'),
(\'de\', 9, \'Org: Unterlagen geben\'),
(\'de\', 10, \'Org: es fehlen Papiere & Unterschriften\'),
(\'de\', 11, \'Maßnahme: am Arbeitsplatz besuchen (Termin siehe Beschreibung)\'),
(\'de\', 12, \'Maßnahme: Meeting mit MA + Manager\'),
(\'de\', 13, \'Maßnahmenplan erstellen\'),
(\'de\', 14, \'Maßnahme überprüfen\'),
(\'de\', 15, \'Anschreiben: 1.Einladung\'),
(\'de\', 16, \'Anschreiben: 2.Einladung\'),
(\'de\', 17, \'Anschreiben: Termin nicht wahrgenommen\'),
(\'de\', 18, \'Anschreiben: Sonstiges (siehe Beschreibung)\'),
(\'de\', 19, \'Ruhen lassen (Dauer und Grund siehe Beschreibung)\'),
(\'de\', 20, \'Bitte nachgehen\'),
(\'de\', 21, \'Krank (Dauer siehe Beschreibung)\'),
(\'en\', 1, \'Call Employee (See Description for Date)\'),
(\'en\', 2, \'Meeting (See Description for Date)\'),
(\'en\', 3, \'Employee will contact us\'),
(\'en\', 4, \'Appointment Medical Officer (See Description for Date)\'),
(\'en\', 5, \'Organize Appointment with Company Medical Officer\'),
(\'en\', 6, \'Organize Meeting with Employee\'),
(\'en\', 7, \'Organize Meeting with Employee and Line Manager about ongoing measures\'),
(\'en\', 8, \'Organize Call\'),
(\'en\', 9, \'Organize Handover of Documents\'),
(\'en\', 10, \'Organize Missing Documents and Signatures\'),
(\'en\', 11, \'Measure: Workplace Visit of Employee\'),
(\'en\', 12, \'Measure: Meeting with Employee and Line Manager\'),
(\'en\', 13, \'Plan Measures/Tasks\'),
(\'en\', 14, \'Verify Choosen Measures\'),
(\'en\', 15, \'Invitation: 1st Cover Letter\'),
(\'en\', 16, \'Invitation: 2nd Cover Letter\'),
(\'en\', 17, \'Invitation: Appointment not kept\'),
(\'en\', 18, \'Invitation: Other (See Description)\'),
(\'en\', 19, \'Suspend Case (See Description for Reasons and Duration)\'),
(\'en\', 20, \'Please Follow-Up\'),
(\'en\', 21, \'Sick Leave (See Description for Duration)\')
;
'
);
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE oim_task_l10n DROP FOREIGN KEY FK_D61B7206706E52B3');
$this->addSql('ALTER TABLE oim_task_l10n DROP FOREIGN KEY FK_D61B720682F1BAF4');
$this->addSql('DROP TABLE oim_task_l10n');
$this->addSql('DROP TABLE oim_task');
}
}