2021-12-24 01:14:01 +00:00
< ? php
use Illuminate\Database\Migrations\Migration ;
use Illuminate\Database\Schema\Blueprint ;
use Illuminate\Support\Facades\Schema ;
class OptimizeProduct extends Migration
{
/**
* Run the migrations .
*
* @ return void
*/
public function up ()
{
2022-02-01 09:15:11 +00:00
$site = \App\Models\Site :: where ( 'site_id' , 1 ) -> firstOrNew ();
2021-12-24 01:14:01 +00:00
Schema :: table ( 'ab_product' , function ( Blueprint $table ) {
$table -> dropForeign ([ 'site_id' ]);
$table -> dropIndex ([ 'id' , 'site_id' ]);
$table -> dropIndex ( 'ab_product_site_id_foreign' );
});
DB :: statement ( 'ALTER TABLE ab_product RENAME TO products' );
Schema :: table ( 'products' , function ( Blueprint $table ) {
$table -> dropColumn ([ 'cart_multiple' ]);
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> dateTime ( 'created_at' ) -> nullable () -> after ( 'id' );
$table -> dateTime ( 'updated_at' ) -> nullable () -> after ( 'created_at' );
});
2022-02-01 05:40:46 +00:00
DB :: statement ( 'ALTER TABLE suppliers MODIFY address1 varchar(255),MODIFY city varchar(255),MODIFY state varchar(255),MODIFY postcode varchar(255)' );
2021-12-24 01:14:01 +00:00
Schema :: table ( 'supplier_details' , function ( Blueprint $table ) {
$table -> jsonb ( 'connections' ) -> nullable ();
});
2022-02-01 05:40:46 +00:00
foreach ( \Illuminate\Support\Facades\DB :: select ( 'SELECT * FROM ab_adsl_supplier' ) as $o ) {
2021-12-24 01:14:01 +00:00
switch ( $o -> name ) {
case 'PeopleAgent' :
$type = 'broadband' ;
$name = 'People Telecom' ;
break ;
case 'iiNetADSL' :
$type = 'broadband' ;
$name = 'iiNet' ;
break ;
case 'ExetelVisp' :
$type = 'broadband' ;
$name = 'Exetel' ;
break ;
case 'ExetelHSPA' :
$type = 'hspa' ;
$name = 'Exetel' ;
break ;
case 'ExetelPE' :
$type = 'ethernet' ;
$name = 'Exetel' ;
break ;
default :
throw new Exception ( 'Unknown Supplier: ' . $o -> name );
}
$so = \App\Models\Supplier :: where ( 'name' , $name ) -> singleOrNew ();
2022-02-01 05:40:46 +00:00
$so -> name = $name ;
2021-12-24 01:14:01 +00:00
$so -> active = $so -> active ? : $o -> active ;
$so -> save ();
$sdo = \App\Models\SupplierDetail :: withoutGlobalScope ( \App\Models\Scopes\SiteScope :: class )
-> where ( 'supplier_id' , $so -> id )
-> where ( 'site_id' , $o -> site_id )
-> firstOrNew ();
if ( ! $sdo -> exists ) {
$sdo -> site_id = $o -> site_id ;
}
$connections = $sdo -> connections ? : collect ();
$connections -> put ( $type ,[
'user' => $o -> stats_username ,
'pass' => $o -> stats_password ,
'last' => $o -> stats_lastupdate ,
'url' => $o -> stats_url ,
]);
$sdo -> connections = $connections ;
$so -> detail () -> save ( $sdo );
};
Schema :: table ( 'ab_adsl_supplier_plan' , function ( Blueprint $table ) {
$table -> dropForeign ([ 'site_id' ]);
$table -> dropIndex ([ 'id' , 'site_id' ]);
$table -> dropIndex ( 'ab_adsl_supplier_plan_site_id_foreign' );
});
DB :: statement ( 'ALTER TABLE ab_adsl_supplier_plan RENAME TO supplier_broadband' );
DB :: statement ( 'ALTER TABLE supplier_broadband MODIFY product_id varchar(16) NOT NULL' );
DB :: statement ( 'ALTER TABLE supplier_broadband MODIFY base_cost double NOT NULL' );
DB :: statement ( 'ALTER TABLE supplier_broadband MODIFY active tinyint(1)' );
DB :: statement ( 'ALTER TABLE supplier_broadband RENAME COLUMN supplier_id TO old_supplier_id' );
DB :: statement ( 'ALTER TABLE supplier_broadband RENAME COLUMN offpeak_start TO old_offpeak_start' );
DB :: statement ( 'ALTER TABLE supplier_broadband RENAME COLUMN offpeak_end TO old_offpeak_end' );
Schema :: table ( 'supplier_broadband' , function ( Blueprint $table ) {
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> dateTime ( 'created_at' ) -> nullable () -> after ( 'id' );
$table -> dateTime ( 'updated_at' ) -> nullable () -> after ( 'created_at' );
$table -> time ( 'offpeak_start' ) -> nullable () -> after ( 'old_offpeak_end' );
$table -> time ( 'offpeak_end' ) -> nullable () -> after ( 'offpeak_start' );
});
Schema :: table ( 'supplier_broadband' , function ( Blueprint $table ) {
$table -> integer ( 'supplier_detail_id' ) -> unsigned () -> nullable () -> after ( 'old_supplier_id' );
$table -> foreign ([ 'supplier_detail_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_details' );
});
\Illuminate\Support\Facades\DB :: select ( " UPDATE ab_service SET model='App \\ \\ Models \\ \\ Service \\ \\ Broadband' where model='App \\ \\ Models \\ \\ Service \\ \\ Adsl' " );
\Illuminate\Support\Facades\DB :: select ( " UPDATE products SET model='App \\ \\ Models \\ \\ Product \\ \\ Broadband' where model='App \\ \\ Models \\ \\ Product \\ \\ Adsl' " );
// Convert to use the new supplier
2022-02-01 05:40:46 +00:00
foreach ( \Illuminate\Support\Facades\DB :: select ( 'SELECT * FROM ab_adsl_supplier' ) as $o ) {
2021-12-24 01:14:01 +00:00
switch ( $o -> name ) {
case 'PeopleAgent' :
$so = \App\Models\Supplier :: where ( 'name' , 'People Telecom' ) -> singleOrFail ();
break ;
case 'iiNetADSL' :
$so = \App\Models\Supplier :: where ( 'name' , 'iiNet' ) -> singleOrFail ();
break ;
case 'ExetelVisp' :
case 'ExetelHSPA' :
case 'ExetelPE' :
$so = \App\Models\Supplier :: where ( 'name' , 'Exetel' ) -> singleOrFail ();
break ;
default :
throw new Exception ( 'Unknown Supplier: ' . $o -> name );
}
$sdo = \App\Models\SupplierDetail :: withoutGlobalScope ( \App\Models\Scopes\SiteScope :: class )
-> where ( 'supplier_id' , $so -> id )
-> where ( 'site_id' , $o -> site_id )
-> singleOrFail ();
\Illuminate\Support\Facades\DB :: select ( sprintf ( " UPDATE supplier_broadband SET supplier_detail_id=%d where old_supplier_id=%d and site_id=%d " , $sdo -> id , $o -> id , $sdo -> site_id ));
}
// Convert out dates
foreach ( \App\Models\Supplier\Broadband :: withoutGlobalScope ( \App\Models\Scopes\SiteScope :: class ) -> cursor () as $o ) {
if ( $o -> date_orig )
$o -> created_at = \Carbon\Carbon :: createFromTimestamp ( $o -> date_orig );
if ( $o -> date_last )
$o -> updated_at = \Carbon\Carbon :: createFromTimestamp ( $o -> date_last );
if ( $o -> old_offpeak_start )
$o -> offpeak_start = \Carbon\Carbon :: createFromTimestamp ( $o -> old_offpeak_start );
if ( $o -> old_offpeak_end )
$o -> offpeak_end = \Carbon\Carbon :: createFromTimestamp ( $o -> old_offpeak_end );
$o -> save ();
}
Schema :: table ( 'supplier_broadband' , function ( Blueprint $table ) {
$table -> dropPrimary ();
$table -> primary ([ 'id' , 'site_id' ]);
$table -> dropColumn ([ 'date_orig' , 'date_last' , 'old_supplier_id' , 'old_offpeak_start' , 'old_offpeak_end' ]);
});
Schema :: dropIfExists ( 'ab_adsl_supplier' );
DB :: statement ( 'ALTER TABLE supplier_broadband MODIFY extra_charged tinyint(1)' );
DB :: statement ( 'ALTER TABLE supplier_broadband MODIFY extra_shaped tinyint(1)' );
DB :: statement ( 'ALTER TABLE supplier_broadband MODIFY contract_term int unsigned' );
Schema :: table ( 'ab_adsl_plan' , function ( Blueprint $table ) {
$table -> dropForeign ([ 'site_id' ]);
$table -> dropIndex ([ 'id' , 'site_id' ]);
$table -> dropIndex ( 'ab_adsl_plan_site_id_foreign' );
});
DB :: statement ( 'ALTER TABLE ab_adsl_plan RENAME TO product_broadband' );
DB :: statement ( 'ALTER TABLE product_broadband DROP PRIMARY KEY,ADD PRIMARY KEY (id,site_id)' );
DB :: statement ( 'ALTER TABLE product_broadband MODIFY extra_charged tinyint(1)' );
DB :: statement ( 'ALTER TABLE product_broadband MODIFY extra_shaped tinyint(1)' );
DB :: statement ( 'ALTER TABLE product_broadband MODIFY contract_term int unsigned' );
DB :: statement ( 'ALTER TABLE product_broadband RENAME COLUMN adsl_supplier_plan_id TO supplier_broadband_id' );
DB :: statement ( 'ALTER TABLE product_broadband MODIFY supplier_broadband_id int unsigned' );
Schema :: table ( 'product_broadband' , function ( Blueprint $table ) {
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> foreign ([ 'supplier_broadband_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_broadband' );
$table -> dateTime ( 'created_at' ) -> nullable () -> after ( 'id' );
$table -> dateTime ( 'updated_at' ) -> nullable () -> after ( 'created_at' );
});
// Convert product pricegroups
foreach ( \App\Models\Product :: withoutGlobalScope ( \App\Models\Scopes\SiteScope :: class ) -> cursor () as $po ) {
if ( $po -> date_orig )
$po -> created_at = \Carbon\Carbon :: createFromTimestamp ( $po -> date_orig );
if ( $po -> date_last )
$po -> updated_at = \Carbon\Carbon :: createFromTimestamp ( $po -> date_last );
if ( ! ( $po instanceof \Illuminate\Support\Collection ) || ! $po -> price_group -> count ()) {
$original = $po -> getRawOriginal ( 'price_group' );
// serialized
if ( preg_match ( '/^a:/' , $original )) {
try {
$price_group = collect ( unserialize ( str_replace ( " \n " , " " , $original )));
} catch ( Exception $e ) {
dd ([ 'error' => $e -> getMessage (), 'raw' => $po -> getRawOriginal ( 'price_group' )]);
}
} elseif ( is_null ( $po -> getRawOriginal ( 'price_group' ))) {
$price_group = collect ();
} else {
try {
$price_group = unserialize ( gzuncompress ( $po -> getRawOriginal ( 'price_group' )));
} catch ( Exception $e ) {
dd ([ 'error' => $e -> getMessage (), 'raw' => $po -> getRawOriginal ( 'price_group' )]);
}
}
$new_price_group = collect ();
// Remove any blank entries, or when base/setup = 0
foreach ( $price_group as $group => $values ) {
$build = collect ();
foreach ( $values as $key => $pricing ) {
switch ( $key ) {
case 'show' :
$build -> put ( 'show' ,( bool ) $pricing );
break ;
default :
// key is a time period
if (( ! Arr :: get ( $pricing , 'price_base' )) && ( ! Arr :: get ( $pricing , 'price_setup' )))
break ;
$build -> put ( $key ,[
'base' => Arr :: get ( $pricing , 'price_base' ),
'setup' => Arr :: get ( $pricing , 'price_setup' ),
]);
}
}
$new_price_group -> put ( $group , $build );
}
$po -> price_group = $new_price_group ;
}
$po -> save ();
}
DB :: statement ( 'ALTER TABLE products MODIFY taxable tinyint(1),MODIFY active tinyint(1),MODIFY price_recurr_strict tinyint(1),MODIFY prod_plugin_data int unsigned' );
DB :: statement ( 'ALTER TABLE products RENAME COLUMN price_group TO pricing' );
DB :: statement ( 'ALTER TABLE products RENAME COLUMN price_recurr_default TO price_recur_default' );
DB :: statement ( 'ALTER TABLE products RENAME COLUMN price_recurr_strict TO price_recur_strict' );
DB :: statement ( 'ALTER TABLE products RENAME COLUMN prod_plugin_data TO model_id' );
Schema :: table ( 'products' , function ( Blueprint $table ) {
$table -> dropColumn ([ 'date_orig' , 'date_last' , 'group_avail' , 'avail_category' , 'price_recurr_day' , 'price_recurr_weekday' , 'prod_plugin_file' ]);
});
2022-02-01 05:40:46 +00:00
Schema :: dropIfExists ( 'ab_voip_plan' );
Schema :: create ( 'tlds' , function ( Blueprint $table ) {
$table -> integer ( 'id' , TRUE ) -> unsigned ();
$table -> timestamps ();
$table -> string ( 'name' , 64 ) -> unique ();
});
Schema :: create ( 'supplier_domain' , function ( Blueprint $table ) {
$table -> integer ( 'id' , TRUE ) -> unsigned ();
$table -> timestamps ();
$table -> integer ( 'site_id' ) -> unsigned ();
$table -> boolean ( 'active' );
$table -> integer ( 'supplier_detail_id' ) -> unsigned ();
$table -> string ( 'product_id' , 16 );
$table -> string ( 'product_desc' , 128 ) -> nullable ();
$table -> float ( 'base_cost' );
$table -> float ( 'setup_cost' ) -> nullable ();
$table -> integer ( 'contract_term' ) -> unsigned () -> nullable ();
$table -> integer ( 'tld_id' ) -> unsigned ();
$table -> text ( 'whois_url' ) -> nullable ();
$table -> text ( 'config' ) -> nullable ();
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> foreign ([ 'tld_id' ]) -> references ([ 'id' ]) -> on ( 'tlds' );
$table -> foreign ([ 'supplier_detail_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_details' );
});
Schema :: create ( 'supplier_host' , function ( Blueprint $table ) {
$table -> integer ( 'id' , TRUE ) -> unsigned ();
$table -> timestamps ();
$table -> integer ( 'site_id' ) -> unsigned ();
$table -> boolean ( 'active' );
$table -> integer ( 'supplier_detail_id' ) -> unsigned ();
$table -> string ( 'product_id' , 16 );
$table -> string ( 'product_desc' , 128 ) -> nullable ();
$table -> float ( 'base_cost' );
$table -> float ( 'setup_cost' ) -> nullable ();
$table -> integer ( 'contract_term' ) -> unsigned () -> nullable ();
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> foreign ([ 'supplier_detail_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_details' );
});
Schema :: create ( 'supplier_ssl' , function ( Blueprint $table ) {
$table -> integer ( 'id' , TRUE ) -> unsigned ();
$table -> timestamps ();
$table -> integer ( 'site_id' ) -> unsigned ();
$table -> boolean ( 'active' );
$table -> integer ( 'supplier_detail_id' ) -> unsigned ();
$table -> string ( 'product_id' , 16 );
$table -> string ( 'product_desc' , 128 ) -> nullable ();
$table -> float ( 'base_cost' );
$table -> float ( 'setup_cost' ) -> nullable ();
$table -> integer ( 'contract_term' ) -> unsigned () -> nullable ();
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> foreign ([ 'supplier_detail_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_details' );
});
Schema :: create ( 'supplier_generic' , function ( Blueprint $table ) {
$table -> integer ( 'id' , TRUE ) -> unsigned ();
$table -> timestamps ();
$table -> integer ( 'site_id' ) -> unsigned ();
$table -> boolean ( 'active' );
$table -> integer ( 'supplier_detail_id' ) -> unsigned ();
$table -> string ( 'product_id' , 16 );
$table -> string ( 'product_desc' , 128 ) -> nullable ();
$table -> float ( 'base_cost' );
$table -> float ( 'setup_cost' ) -> nullable ();
$table -> integer ( 'contract_term' ) -> unsigned () -> nullable ();
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> foreign ([ 'supplier_detail_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_details' );
});
Schema :: create ( 'supplier_voip' , function ( Blueprint $table ) {
$table -> integer ( 'id' , TRUE ) -> unsigned ();
$table -> timestamps ();
$table -> integer ( 'site_id' ) -> unsigned ();
$table -> boolean ( 'active' );
$table -> integer ( 'supplier_detail_id' ) -> unsigned ();
$table -> string ( 'product_id' , 16 );
$table -> string ( 'product_desc' , 128 ) -> nullable ();
$table -> float ( 'base_cost' );
$table -> float ( 'setup_cost' ) -> nullable ();
$table -> integer ( 'contract_term' ) -> unsigned () -> nullable ();
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> foreign ([ 'supplier_detail_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_details' );
});
Schema :: create ( 'product_domain' , function ( Blueprint $table ) {
$table -> integer ( 'id' , TRUE ) -> unsigned ();
$table -> timestamps ();
$table -> integer ( 'site_id' ) -> unsigned ();
$table -> integer ( 'supplier_domain_id' ) -> unsigned ();
$table -> string ( 'name' , 64 );
$table -> integer ( 'contract_term' ) -> unsigned () -> nullable ();
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> foreign ([ 'supplier_domain_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_domain' );
});
Schema :: create ( 'product_host' , function ( Blueprint $table ) {
$table -> integer ( 'id' , TRUE ) -> unsigned ();
$table -> timestamps ();
$table -> integer ( 'site_id' ) -> unsigned ();
$table -> integer ( 'supplier_host_id' ) -> unsigned ();
$table -> string ( 'name' , 64 );
$table -> integer ( 'contract_term' ) -> unsigned () -> nullable ();
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> foreign ([ 'supplier_host_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_host' );
});
Schema :: create ( 'product_ssl' , function ( Blueprint $table ) {
$table -> integer ( 'id' , TRUE ) -> unsigned ();
$table -> timestamps ();
$table -> integer ( 'site_id' ) -> unsigned ();
$table -> integer ( 'supplier_ssl_id' ) -> unsigned ();
$table -> string ( 'name' , 64 );
$table -> integer ( 'contract_term' ) -> unsigned () -> nullable ();
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> foreign ([ 'supplier_ssl_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_ssl' );
});
Schema :: create ( 'product_generic' , function ( Blueprint $table ) {
$table -> integer ( 'id' , TRUE ) -> unsigned ();
$table -> timestamps ();
$table -> integer ( 'site_id' ) -> unsigned ();
$table -> integer ( 'supplier_generic_id' ) -> unsigned ();
$table -> string ( 'name' , 64 );
$table -> integer ( 'contract_term' ) -> unsigned () -> nullable ();
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> foreign ([ 'supplier_generic_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_generic' );
});
Schema :: create ( 'product_voip' , function ( Blueprint $table ) {
$table -> integer ( 'id' , TRUE ) -> unsigned ();
$table -> timestamps ();
$table -> integer ( 'site_id' ) -> unsigned ();
$table -> integer ( 'supplier_voip_id' ) -> unsigned ();
$table -> string ( 'name' , 64 );
$table -> integer ( 'contract_term' ) -> unsigned () -> nullable ();
$table -> index ([ 'id' , 'site_id' ]);
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> foreign ([ 'supplier_voip_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'supplier_voip' );
});
// Setup Domains
foreach ( \Illuminate\Support\Facades\DB :: select ( 'SELECT * FROM ab_domain_tld' ) as $o ) {
$oo = new \App\Models\TLD ;
if ( $o -> date_orig )
$oo -> created_at = \Carbon\Carbon :: createFromTimestamp ( $o -> date_orig );
if ( $o -> date_last )
$oo -> created_at = \Carbon\Carbon :: createFromTimestamp ( $o -> date_last );
$oo -> name = strtolower ( $o -> name );
$oo -> save ();
};
foreach ( \Illuminate\Support\Facades\DB :: select ( 'SELECT * FROM ab_domain_registrar' ) as $o ) {
$so = \App\Models\Supplier :: where ( 'name' , $o -> name ) -> singleOrNew ();
$so -> name = $o -> name ;
$so -> active = $so -> active ? : $o -> active ;
$so -> save ();
$sdo = \App\Models\SupplierDetail :: withoutGlobalScope ( \App\Models\Scopes\SiteScope :: class )
-> where ( 'supplier_id' , $so -> id )
-> where ( 'site_id' , 1 )
-> firstOrNew ();
$sdo -> site_id = 1 ;
$connects = collect ();
if ( $o -> whitelabel_url )
$connects -> put ( 'whitelabel_url' , $o -> whitelabel_url );
if ( $o -> manage_url )
$connects -> put ( 'manage_url' , $o -> manage_url );
$sdo -> connections = $connects ;
$so -> detail () -> save ( $sdo );
foreach ( \App\Models\TLD :: cursor () as $tldo ) {
$sd = \App\Models\Supplier\Domain :: withoutGlobalScope ( \App\Models\Scopes\SiteScope :: class )
-> where ( 'tld_id' , $tldo -> id )
-> where ( 'site_id' , $sdo -> site_id )
-> where ( 'supplier_detail_id' , $sdo -> id )
-> firstOrNew ();
$sd -> supplier_detail_id = $sdo -> id ;
$sd -> tld_id = $tldo -> id ;
$sd -> site_id = $sdo -> site_id ;
$sd -> active = TRUE ;
$sd -> product_id = 'Domain Name' ;
$sd -> product_desc = 'Domain Name License' ;
$sd -> base_cost = '.01' ;
$sd -> contract_term = 12 ;
$sd -> save ();
$pd = \App\Models\Product\Domain :: withoutGlobalScope ( \App\Models\Scopes\SiteScope :: class )
-> where ( 'site_id' , $sdo -> site_id )
-> where ( 'supplier_domain_id' , $sd -> id )
-> firstOrNew ();
$pd -> supplier_domain_id = $sd -> id ;
$pd -> site_id = $sd -> site_id ;
$pd -> name = $sd -> name ;
$pd -> save ();
}
}
2021-12-24 01:14:01 +00:00
2022-02-01 09:15:11 +00:00
// No need to update tables, if we dont have a site setup yet.
if ( ! $site -> exists )
return ;
2022-02-01 05:40:46 +00:00
// SSL
$so = \App\Models\Supplier :: where ( 'name' , 'Graytech Hosting Pty Ltd' ) -> firstOrNew ();
$so -> name = 'Graytech Hosting Pty Ltd' ;
$so -> active = TRUE ;
$so -> save ();
$sdo = \App\Models\SupplierDetail :: withoutGlobalScope ( \App\Models\Scopes\SiteScope :: class )
-> where ( 'site_id' , '1' )
-> where ( 'supplier_id' , $so -> id )
-> firstOrNew ();
2022-02-01 09:15:11 +00:00
$sdo -> site_id = $site -> site_id ;
2022-02-01 05:40:46 +00:00
$so -> detail () -> save ( $sdo );
$o = new \App\Models\Supplier\SSL ;
$o -> site_id = $sdo -> site_id ;
$o -> active = TRUE ;
$o -> product_id = 'Graytech SSL' ;
$o -> base_cost = 0 ;
$o -> setup_cost = 0 ;
$o -> supplier_detail_id = $sdo -> id ;
$o -> save ();
$oo = new \App\Models\Product\SSL ;
$oo -> site_id = $sdo -> site_id ;
$oo -> supplier_ssl_id = $o -> id ;
$oo -> name = 'Graytech SSL' ;
$oo -> save ();
$o = new \App\Models\Supplier\Host ;
$o -> site_id = $sdo -> site_id ;
$o -> active = TRUE ;
$o -> product_id = 'Graytech Hosting' ;
$o -> base_cost = 0 ;
$o -> setup_cost = 0 ;
$o -> supplier_detail_id = $sdo -> id ;
$o -> save ();
$oo = new \App\Models\Product\Host ;
$oo -> site_id = $sdo -> site_id ;
$oo -> supplier_host_id = $o -> id ;
$oo -> name = 'Graytech Hosting' ;
$oo -> save ();
$so = \App\Models\Supplier :: where ( 'name' , 'crazydomain' ) -> firstOrFail ();
$sdo = \App\Models\SupplierDetail :: withoutGlobalScope ( \App\Models\Scopes\SiteScope :: class )
-> where ( 'site_id' , '1' )
-> where ( 'supplier_id' , $so -> id )
-> firstOrNew ();
2022-02-01 09:15:11 +00:00
$sdo -> site_id = $site -> site_id ;
2022-02-01 05:40:46 +00:00
$so -> detail () -> save ( $sdo );
$o = new \App\Models\Supplier\Host ;
$o -> site_id = $sdo -> site_id ;
$o -> active = TRUE ;
$o -> product_id = 'CD Host' ;
$o -> base_cost = 0 ;
$o -> supplier_detail_id = $sdo -> id ;
$o -> save ();
$oo = new \App\Models\Product\Host ;
$oo -> site_id = $sdo -> site_id ;
$oo -> supplier_host_id = $o -> id ;
$oo -> name = 'Crazy Domains Hosting' ;
$oo -> save ();
// VOIP
$so = \App\Models\Supplier :: where ( 'name' , 'Exetel' ) -> firstOrFail ();
$sdo = \App\Models\SupplierDetail :: withoutGlobalScope ( \App\Models\Scopes\SiteScope :: class )
-> where ( 'site_id' , '1' )
-> where ( 'supplier_id' , $so -> id )
-> firstOrNew ();
2022-02-01 09:15:11 +00:00
$sdo -> site_id = $site -> site_id ;
2022-02-01 05:40:46 +00:00
$so -> detail () -> save ( $sdo );
2022-04-19 07:07:39 +00:00
$o = new \App\Models\Supplier\Phone ;
2022-02-01 05:40:46 +00:00
$o -> site_id = $sdo -> site_id ;
$o -> active = TRUE ;
$o -> product_id = 'VOIP $10' ;
$o -> base_cost = 9.09 ;
$o -> setup_cost = 0 ;
$o -> supplier_detail_id = $sdo -> id ;
$o -> save ();
2022-04-19 07:07:39 +00:00
$oo = new \App\Models\Product\Phone ;
2022-02-01 05:40:46 +00:00
$oo -> site_id = $sdo -> site_id ;
$oo -> supplier_voip_id = $o -> id ;
$oo -> name = 'VOIP $10' ;
$oo -> save ();
2022-04-19 07:07:39 +00:00
$o = new \App\Models\Supplier\Phone ;
2022-02-01 05:40:46 +00:00
$o -> site_id = $sdo -> site_id ;
$o -> active = TRUE ;
$o -> product_id = 'VOIP' ;
$o -> base_cost = 0 ;
$o -> setup_cost = 0 ;
$o -> supplier_detail_id = $sdo -> id ;
$o -> save ();
2022-04-19 07:07:39 +00:00
$oo = new \App\Models\Product\Phone ;
2022-02-01 05:40:46 +00:00
$oo -> site_id = $sdo -> site_id ;
$oo -> supplier_voip_id = $o -> id ;
$oo -> name = 'VOIP' ;
$oo -> save ();
2022-04-19 07:07:39 +00:00
$o = new \App\Models\Supplier\Phone ;
2022-02-01 05:40:46 +00:00
$o -> site_id = $sdo -> site_id ;
$o -> active = TRUE ;
$o -> product_id = 'VOIP B-100' ;
$o -> product_desc = 'VOIP Business 100 Lines' ;
$o -> base_cost = 22.727 ;
$o -> setup_cost = 0 ;
$o -> supplier_detail_id = $sdo -> id ;
$o -> save ();
2022-04-19 07:07:39 +00:00
$oo = new \App\Models\Product\Phone ;
2022-02-01 05:40:46 +00:00
$oo -> site_id = $sdo -> site_id ;
$oo -> supplier_voip_id = $o -> id ;
$oo -> name = 'VOIP B-10' ;
$oo -> save ();
// Manually run this, since we havent worked out site_id when running migrate.
// update products set model_id=49,model='App\\Models\\Product\\Domain' where id=78;
2021-12-24 01:14:01 +00:00
}
/**
* Reverse the migrations .
*
* @ return void
*/
public function down ()
{
2022-02-01 05:40:46 +00:00
abort ( 500 , 'Cant go back' );
2021-12-24 01:14:01 +00:00
}
}