Вход Регистрация
Файл: database/migrations/2021_08_25_225022_v2_5_0.php
Строк: 337
<?php

use IlluminateDatabaseMigrationsMigration;
use 
IlluminateDatabaseSchemaBlueprint;
use 
IlluminateSupportFacadesSchema;
use 
IlluminateSupportFacadesDB;

class 
V250 extends Migration
{
    
/**
     * Run the migrations.
     *
     * @return void
     */
    
public function up()
    {
        
Schema::table('users', function (Blueprint $table) {
            
$table->text('billing_information')->nullable()->after('role');
            
$table->timestamp('plan_ends_at')->nullable()->after('role');
            
$table->timestamp('plan_trial_ends_at')->nullable()->after('role');
            
$table->timestamp('plan_recurring_at')->nullable()->after('role');
            
$table->timestamp('plan_created_at')->nullable()->after('role');
            
$table->string('plan_subscription_status'32)->nullable()->after('role');
            
$table->string('plan_subscription_id'128)->nullable()->after('role');
            
$table->string('plan_payment_processor'32)->nullable()->after('role');
            
$table->string('plan_interval'16)->nullable()->after('role');
            
$table->string('plan_currency'12)->nullable()->after('role');
            
$table->string('plan_amount'32)->nullable()->after('role');
            
$table->integer('plan_id')->unsigned()->default(1)->after('role')->index('plan_id');

            
$table->dropColumn(['stripe_id''card_last_four''card_brand''trial_ends_at']);
        });

        
Schema::drop('subscriptions');
        
Schema::drop('subscription_items');

        
Schema::create('payments', function (Blueprint $table) {
            
$table->increments('id');
            
$table->unsignedInteger('user_id')->index('user_id');
            
$table->unsignedInteger('plan_id')->index('plan_id');
            
$table->string('payment_id'128)->index('payment_id');
            
$table->string('invoice_id'128)->nullable()->index('invoice_id');
            
$table->string('processor'32)->index('processor');
            
$table->string('amount'32);
            
$table->string('currency'12);
            
$table->string('interval'16)->index('interval');
            
$table->string('status'16)->index('status');
            
$table->text('product')->nullable();
            
$table->text('coupon')->nullable();
            
$table->text('tax_rates')->nullable();
            
$table->text('seller')->nullable();
            
$table->text('customer')->nullable();
            
$table->timestamps();
        });

        
Schema::table('cronjobs', function(Blueprint $table)
        {
            
$table->increments('id')->change();
        });

        
Schema::table('pages', function(Blueprint $table) {
            
$table->renameColumn('title''name');
        });

        
Schema::table('languages', function (Blueprint $table) {
            
$table->timestamps();
        });

        
Schema::create('coupons', function(Blueprint $table)
        {
            
$table->increments('id');
            
$table->string('name')->index('name');
            
$table->string('code')->index('code');
            
$table->boolean('type')->index('type');
            
$table->decimal('percentage'52)->nullable();
            
$table->integer('quantity')->nullable();
            
$table->integer('days')->nullable();
            
$table->integer('redeems')->nullable()->default(0);
            
$table->timestamps();
            
$table->softDeletes();
        });

        
Schema::create('tax_rates', function(Blueprint $table)
        {
            
$table->increments('id');
            
$table->string('name')->index('name');
            
$table->boolean('type')->index('type');
            
$table->decimal('percentage'52);
            
$table->text('regions')->nullable();
            
$table->timestamps();
            
$table->softDeletes();
        });

        
Schema::table('plans', function (Blueprint $table) {
            
$table->increments('id')->change();
            
$table->string('amount_month'32)->default(0)->change();
            
$table->string('amount_year'32)->default(0)->change();
            
$table->text('tax_rates')->after('coupons')->nullable();
            
$table->text('features')->after('visibility')->nullable();
            
$table->timestamps();
        });

        
$featuresList = ['option_pageviews'];
        
$features = [];
        foreach (
DB::table('plans')->select('*')->cursor() as $row) {
            foreach (
$featuresList as $feature) {
                
$features[str_replace('option_'''$feature)] = $row->$feature;
            }

            
DB::statement("UPDATE `plans` SET `features` = :features, `amount_month` = :amount_month, `amount_year` = :amount_year WHERE `id` = :id", ['features' => json_encode($features), 'id' => $row->id'amount_month' => (!in_array(strtoupper($row->currency), config('currencies.zero_decimals')) ? $row->amount_month 100 $row->amount_month), 'amount_year' => (!in_array(strtoupper($row->currency), config('currencies.zero_decimals')) ? $row->amount_year 100 $row->amount_year)]);
        }

        
Schema::table('plans', function (Blueprint $table) use ($featuresList) {
            
$table->dropColumn(array_merge(['product''plan_month''plan_year'], $featuresList));
        });

        
DB::update("UPDATE `plans` SET `tax_rates` = '[]', `coupons` = '[]'");

        
$settings array_combine(['registration''billing_vendor''billing_address''billing_city''billing_state''billing_postal_code''billing_country''billing_phone''billing_vat_number'], ['registration_registration''invoice_vendor''invoice_address''invoice_city''invoice_state''invoice_postal_code''invoice_country''invoice_phone''invoice_vat_number']);

        
$sqlQuery null;
        foreach(
$settings as $new => $old) {
            
$sqlQuery .= "WHEN `name` = '" $old "' THEN '" $new "' ";
        }

        
DB::update("UPDATE `settings` SET `name` = CASE " $sqlQuery " END WHERE `name` IN ('" implode("', '"$settings) . "')");

        
DB::table('settings')->insert(
            [
                [
                    
'name' => 'paypal',
                    
'value' => '0'
                
], [
                    
'name' => 'paypal_mode',
                    
'value' => 'sandbox'
                
], [
                    
'name' => 'paypal_client_id',
                    
'value' => ''
                
], [
                    
'name' => 'paypal_secret',
                    
'value' => ''
                
], [
                    
'name' => 'paypal_webhook_id',
                    
'value' => ''
                
], [
                    
'name' => 'coinbase',
                    
'value' => '0'
                
], [
                    
'name' => 'coinbase_key',
                    
'value' => ''
                
], [
                    
'name' => 'coinbase_wh_secret',
                    
'value' => ''
                
], [
                    
'name' => 'bank',
                    
'value' => '0'
                
], [
                    
'name' => 'bank_account_owner',
                    
'value' => ''
                
], [
                    
'name' => 'bank_account_number',
                    
'value' => ''
                
], [
                    
'name' => 'bank_name',
                    
'value' => ''
                
], [
                    
'name' => 'bank_routing_number',
                    
'value' => ''
                
], [
                    
'name' => 'bank_iban',
                    
'value' => ''
                
], [
                    
'name' => 'bank_bic_swift',
                    
'value' => ''
                
], [
                    
'name' => 'billing_invoice_prefix',
                    
'value' => ''
                
], [
                    
'name' => 'announcement_guest',
                    
'value' => ''
                
], [
                    
'name' => 'announcement_guest_type',
                    
'value' => 'info'
                
], [
                    
'name' => 'announcement_guest_id',
                    
'value' => 'cwUOUj7dQZZzJstZ'
                
], [
                    
'name' => 'announcement_user',
                    
'value' => ''
                
], [
                    
'name' => 'announcement_user_type',
                    
'value' => 'info'
                
], [
                    
'name' => 'announcement_user_id',
                    
'value' => 'p0VIvAg0FU26HN2v'
                
],
            ]
        );
    }

    
/**
     * Reverse the migrations.
     *
     * @return void
     */
    
public function down()
    {
        
//
    
}
}
Онлайн: 1
Реклама