<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use App\Service\Gamification\MissionIdentifier;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20251123135708 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add all missions (one_time and monthly)';
}
public function up(Schema $schema): void
{
$missions = [
// One-time missions
[1, MissionIdentifier::TYPE_ONE_TIME_COMMISSION, 'one_time_commission', 'one_time', 1],
[2, MissionIdentifier::TYPE_ONE_TIME_RANK, 'one_time_rank', 'one_time', 1],
[3, MissionIdentifier::TYPE_ONE_TIME_PERSONAL_CLIENT, 'one_time_personal_client', 'one_time', 1],
[4, MissionIdentifier::TYPE_ONE_TIME_QUALIFICATION_IN_PERSONAL_CLIENTS, 'one_time_qualification_in_personal_clients', 'one_time', 1],
[5, MissionIdentifier::TYPE_ONE_TIME_PERSONAL_CLIENT_POINT, 'one_time_personal_client_point', 'one_time', 1],
[6, MissionIdentifier::TYPE_ONE_TIME_CONNECTION, 'one_time_connection', 'one_time', 1],
[7, MissionIdentifier::TYPE_ONE_TIME_BIRTH_BIZ_DAY, 'one_time_birth_biz_day', 'one_time', 1],
[8, MissionIdentifier::TYPE_ONE_TIME_ACTIVE_BIZPARTNER, 'one_time_active_bizpartner', 'one_time', 1],
[9, MissionIdentifier::TYPE_ONE_TIME_ACTIVE_CLIENT, 'one_time_active_client', 'one_time', 1],
[10, MissionIdentifier::TYPE_ONE_TIME_COUNTRY_POINT, 'one_time_country_point', 'one_time', 1],
[11, MissionIdentifier::TYPE_ONE_TIME_FUTURES_POINT, 'one_time_futures_point', 'one_time', 1],
[12, MissionIdentifier::TYPE_ONE_TIME_LUUME_POINT, 'one_time_luume_point', 'one_time', 1],
[13, MissionIdentifier::TYPE_ONE_TIME_MISSION_COMPLETED, 'one_time_mission_completed', 'one_time', 1],
// Monthly missions
[14, MissionIdentifier::TYPE_MONTHLY_PERSONAL_CLIENT_POINT, 'monthly_personal_client_point', 'monthly', 1],
[15, MissionIdentifier::TYPE_MONTHLY_TOP_PERFORMER, 'monthly_top_performer', 'monthly', 1],
[16, MissionIdentifier::TYPE_MONTHLY_QUALIFICATION, 'monthly_qualification', 'monthly', 1],
];
foreach ($missions as [$id, $name, $marketingName, $recurrence, $isEnabled]) {
$this->addSql("INSERT INTO mybiz_mission (id, name, marketing_name, recurrence, is_enabled)
VALUES ({$id}, '{$name}', '{$marketingName}', '{$recurrence}', {$isEnabled})");
}
}
public function down(Schema $schema): void
{
$this->addSql('DELETE FROM mybiz_mission');
}
}