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/m180306_172704_quickFixes4.php
<?php

use yii\db\Migration;
use app\models\core\CompanyType;
use app\models\core\Project;
use app\components\BaseModel;
use yii\helpers\ArrayHelper;
use app\models\core\Company;
use app\models\core\Influencer;

/**
 * Class m180306_172704_quickFixes4
 */
class m180306_172704_quickFixes4 extends Migration
{
    /**
     * {@inheritdoc}
     */
    public function safeUp()
    {
        $this->addColumn(Project::tableName(), 'order_at', $this->timestamp()->defaultValue(null)->comment('Order date'));
        $this->addColumn(Project::tableName(), 'next_action_at', $this->timestamp()->defaultValue(null)->comment('Next action date'));
        $this->addColumn(Project::tableName(), 'efv', $this->double()->defaultValue(null)->comment('Estimated flooring value'));

        $this->addInfluenceTable();

        $this->addColumn(Company::tableName(), 'influencer_id', $this->integer()->defaultValue(null)->comment('FK Influencer'));
        $this->addColumn(Company::tableName(), 'linkedin', $this->boolean()->notNull()->defaultValue(false)->comment('LinkedIn'));
    }

    protected function addInfluenceTable()
    {
        $columns = [
            'id' => $this->primaryKey(),
            'name' => $this->string()->notNull()->unique(),
            'description' => $this->text(),
        ];

        $this->createTable(Influencer::tableName(), $this->addModifiers($columns));
    }

    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);
    }

    /**
     * {@inheritdoc}
     */
    public function safeDown()
    {
        $this->dropColumn(Project::tableName(), 'efv');
        $this->dropColumn(Project::tableName(), 'next_action_at');
        $this->dropColumn(Project::tableName(), 'order_at');

        $this->dropColumn(Company::tableName(), 'linkedin');
        $this->dropColumn(Company::tableName(), 'influencer_id');

        $this->dropTable(Influencer::tableName());
    }
}