<?php
/**
* @noinspection PhpUnused
* @noinspection PhpInternalEntityUsedInspection
*/
declare(strict_types=1);
namespace DoctrineMigrations;
use App\Helper\Api\Constants\Roles\AccidentManagement;
use App\Helper\Api\Constants\Roles\Cmr;
use App\Helper\Api\Constants\Roles\CoreModule;
use App\Helper\Api\Constants\Roles\JobLab;
use App\Helper\Api\Constants\Roles\MedicalSurveillance;
use App\Helper\Api\Constants\Roles\OperationalIntegrationManagement;
use App\Helper\Api\Constants\Roles\SkillScreening;
use App\Helper\Api\Constants\Roles\SocialCounseling;
use App\Helper\Api\Constants\Roles\WorkplaceConfigurator;
use App\Validator\Constraints\Api\CoreModule\Module\AbstractModuleIdCompound;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*
* @package API
* @internal
*/
final class Version20230705102937 extends AbstractMigration
{
/**
* Local admin role name.
*
* Prevent SonarQube issue php:S1192 String literals should not be duplicated.
*
* @var string
*/
public const LOCAL_ADMIN = 'Local admin';
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
}
public function getDescription(): string
{
return
"- Seeding of role table.";
}
/**
* @param Schema $schema
* @return void
*
*/
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$roles = [
AbstractModuleIdCompound::CORE_MODULE_MODULE_ID => [
CoreModule::ROLE_CORE_MODULE_EMPLOYEE_MANAGER => 'Employee manager',
CoreModule::ROLE_CORE_MODULE_HEALTH_INSURANCE_PROVIDER_MANAGER => 'Health insurance provider manager',
CoreModule::ROLE_CORE_MODULE_ORG_UNIT_MANAGER => 'Organizational unit manager',
CoreModule::ROLE_CORE_MODULE_ROLE_MANAGER => 'Role manager',
CoreModule::ROLE_CORE_MODULE_SETTINGS_MANAGER => 'Settings manager',
CoreModule::ROLE_CORE_MODULE_USER_MANAGER => 'User manager'
],
AbstractModuleIdCompound::ACCIDENT_MANAGEMENT_MODULE_ID => [
AccidentManagement::ROLE_ACCIDENT_MANAGEMENT_DATA_MANAGER => 'Accident ' . self::LOCAL_ADMIN,
AccidentManagement::ROLE_ACCIDENT_MANAGEMENT_EMPLOYEE_REPRESENTATIVE => 'Work council',
AccidentManagement::ROLE_ACCIDENT_MANAGEMENT_HEALTH_AND_SAFETY_OFFICER => 'Authorized person',
AccidentManagement::ROLE_ACCIDENT_MANAGEMENT_SETTINGS_MANAGER => 'Accident management settings manager',
AccidentManagement::ROLE_ACCIDENT_MANAGEMENT_USER => 'Accident management user'
],
AbstractModuleIdCompound::OPERATIONAL_INTEGRATION_MANAGEMENT_MODULE_ID => [
OperationalIntegrationManagement::ROLE_OPERATIONAL_INTEGRATION_MANAGEMENT_DATA_MANAGER =>
'OIM ' . self::LOCAL_ADMIN,
OperationalIntegrationManagement::ROLE_OPERATIONAL_INTEGRATION_MANAGEMENT_MANAGER =>
'Operational integration management manager',
OperationalIntegrationManagement::ROLE_OPERATIONAL_INTEGRATION_MANAGEMENT_SETTINGS_MANAGER =>
'Operational integration management settings manager'
],
AbstractModuleIdCompound::WORKPLACE_CONFIGURATOR_MODULE_ID => [
WorkplaceConfigurator::ROLE_WORKPLACE_CONFIGURATOR_MANAGER => 'Workplace configurator manager',
WorkplaceConfigurator::ROLE_WORKPLACE_CONFIGURATOR_SCREENING_MANAGER => 'Workplace screening manager',
WorkplaceConfigurator::ROLE_WORKPLACE_CONFIGURATOR_DATA_MANAGER => 'Workplace ' . self::LOCAL_ADMIN
],
AbstractModuleIdCompound::SKILL_SCREENING_MODULE_ID => [
SkillScreening::ROLE_SKILL_SCREENING_MANAGER => 'Skill screening manager',
SkillScreening::ROLE_SKILL_SCREENING_DATA_MANAGER => 'Skill screening ' . self::LOCAL_ADMIN
],
AbstractModuleIdCompound::JOB_LAB_MODULE_ID => [
JobLab::ROLE_JOB_LAB_DATA_MANAGER => 'Job lab ' . self::LOCAL_ADMIN,
JobLab::ROLE_JOB_LAB_MANAGER => 'Job integration manager',
JobLab::ROLE_JOB_LAB_SETTINGS_MANAGER => 'Job integration settings manager'
],
AbstractModuleIdCompound::SOCIAL_COUNSELING_MODULE_ID => [
SocialCounseling::ROLE_SOCIAL_COUNSELING_SETTINGS_MANAGER => 'SOB settings manager',
SocialCounseling::ROLE_SOCIAL_COUNSELING_MANAGER => 'SOB manager',
SocialCounseling::ROLE_SOCIAL_COUNSELING_DATA_MANAGER => 'SOB ' . self::LOCAL_ADMIN,
SocialCounseling::ROLE_SOCIAL_COUNSELING_REGISTRAR => 'SOB registrar',
],
AbstractModuleIdCompound::MEDICAL_SURVEILLANCE_ID => [
MedicalSurveillance::ROLE_MEDICAL_SURVEILLANCE_SETTINGS_MANAGER => 'Medical surveillance settings manager',
MedicalSurveillance::ROLE_MEDICAL_SURVEILLANCE_MANAGER => 'Medical surveillance manager',
MedicalSurveillance::ROLE_MEDICAL_SURVEILLANCE_DATA_MANAGER => 'Medical surveillance ' . self::LOCAL_ADMIN,
MedicalSurveillance::ROLE_MEDICAL_SURVEILLANCE_MEDICAL_MANAGER => 'Medical surveillance medical manager',
MedicalSurveillance::ROLE_MEDICAL_SURVEILLANCE_SAFETY_MANAGER => 'Medical surveillance safety manager',
MedicalSurveillance::ROLE_MEDICAL_SURVEILLANCE_SAFETY_OFFICER => 'Medical surveillance safety officer',
],
AbstractModuleIdCompound::CMR_MODULE_ID => [
Cmr::ROLE_CMR_DATA_MANAGER => 'Cmr ' . self::LOCAL_ADMIN,
Cmr::ROLE_CMR_MANAGER => 'Cmr manager',
Cmr::ROLE_CMR_SETTINGS_MANAGER => 'Cmr settings manager'
],
];
foreach ($roles as $moduleId => $roleDataSets) {
foreach ($roleDataSets as $id => $name) {
$this->addSql(
'
INSERT INTO role
(id, name, module_id)
VALUES
(:id, :name, :moduleId)
;
',
[
'id' => $id,
'name' => $name,
'moduleId' => $moduleId
]
);
}
}
}
}