View file upload/src/addons/AddonFlare/PaidRegistrations/Setup.php

File size: 2.47Kb
<?php

namespace AddonFlare\PaidRegistrations;

use XF\AddOn\AbstractSetup;
use XF\AddOn\StepRunnerInstallTrait;
use XF\AddOn\StepRunnerUninstallTrait;
use XF\AddOn\StepRunnerUpgradeTrait;

use XF\Db\Schema\Alter;
use XF\Db\Schema\Create;

class Setup extends AbstractSetup
{
    use StepRunnerInstallTrait;
    use StepRunnerUpgradeTrait;
    use StepRunnerUninstallTrait;

    // install
    public function installStep1()
    {
        $this->schemaManager()->createTable('xf_af_paidregistrations_accounttype', function(Create $table)
        {
            $table->addColumn('account_type_id', 'int')->autoIncrement();
            $table->addColumn('row', 'int');
            $table->addColumn('display_order', 'int');
            $table->addColumn('user_upgrade_id', 'int')->unsigned(false);

            $table->addColumn('color', 'varchar', 50)->setDefault('');
            $table->addColumn('color_dark', 'varchar', 50)->setDefault('');

            $table->addColumn('features', 'mediumtext')->nullable();

            $table->addColumn('active', 'tinyint', 3)->setDefault(1);
        });
    }

    public function installStep2()
    {
        $this->schemaManager()->alterTable('xf_af_paidregistrations_accounttype', function(Alter $alter)
        {
            $alter->addColumn('is_featured', 'tinyint', 3)->setDefault(0);
        });
    }

    public function installStep3()
    {
        $this->schemaManager()->alterTable('xf_af_paidregistrations_accounttype', function(Alter $alter)
        {
            $alter->addColumn('alias_user_upgrades', 'mediumtext');
            $alter->addColumn('allow_custom_amount', 'tinyint', 3)->setDefault(0);
        });
    }

    public function installStep4()
    {
        $this->schemaManager()->alterTable('xf_af_paidregistrations_accounttype', function(Alter $alter)
        {
            $alter->addColumn('custom_amount_min')->type('decimal', '10,2');
            $alter->addColumn('disable_custom_amount_guest', 'tinyint', 3)->setDefault(0);
        });
    }

    // upgrade
    public function upgrade1020070Step1()
    {
        $this->installStep2();
    }

    public function upgrade1030070Step1()
    {
        $this->installStep3();
    }

    public function upgrade1040070Step1()
    {
        $this->installStep4();
    }

    // uninstall
    public function uninstallStep1()
    {
        $this->schemaManager()->dropTable('xf_af_paidregistrations_accounttype');
    }
}