HEX
Server: LiteSpeed
System: Linux premium260.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User: aliazzsr (627)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/aliazzsr/api.crm.vqode.com/migrations/m180427_100144_263Priorities.php
<?php

use yii\db\Migration;
use app\components\BaseModel;
use yii\helpers\ArrayHelper;
use app\models\core\Priority;
use app\models\enums\PriorityEnum;
use app\models\core\Project;

/**
 * Class m180427_100144_263Priorities
 */
class m180427_100144_263Priorities extends Migration
{
    /**
     * {@inheritdoc}
     */
    public function safeUp()
    {
        $columns = [
            'id' => $this->primaryKey(),
            'name' => $this->string()->notNull()->defaultValue(''),
            'color' => $this->string()->notNull()->defaultValue('black'),
            'description' => $this->string()->notNull()->defaultValue(''),
        ];
        $this->createTable(Priority::tableName(), $this->addModifiers($columns));
        $this->batchInsert(Priority::tableName(), ['id', 'name', 'color'], [
            [PriorityEnum::HIGH, PriorityEnum::getLabel(PriorityEnum::HIGH), 'E64C66'],
            [PriorityEnum::MEDIUM, PriorityEnum::getLabel(PriorityEnum::MEDIUM), 'FFAB00'],
            [PriorityEnum::LOW, PriorityEnum::getLabel(PriorityEnum::LOW), '97B3CE'],
        ]);

        $this->addColumn(Project::tableName(), 'priority_id', $this->integer()->defaultValue(null));
    }

    /**
     * {@inheritdoc}
     */
    public function safeDown()
    {
        $this->dropColumn(Project::tableName(), 'priority_id');
        $this->dropTable(Priority::tableName());
    }

    protected function addModifiers($columns)
    {
        $modifiers = [
            BaseModel::CreatedAt_Attribute => $this->timestamp()->defaultValue(null)
                ->comment('timestamp record created'),

            BaseModel::UpdatedAt_Attribute => $this->timestamp()->defaultValue(null)
                ->comment('timestamp record last time updated'),

            BaseModel::CreatedId_Attribute => $this->integer()->defaultValue(null)
                ->defaultValue(0)->comment('user created the record'),

            BaseModel::UpdatedId_Attribute => $this->integer()->defaultValue(null)
                ->defaultValue(0)->comment('user updated the record'),
        ];

        return ArrayHelper::merge($columns, $modifiers);
    }
}