2021-12-21 05:47:06 +00:00
< ? php
use Illuminate\Database\Migrations\Migration ;
use Illuminate\Database\Schema\Blueprint ;
use Illuminate\Support\Facades\Schema ;
/*
| ab_account_billing |
| ab_account_group |
| ab_account_log |
| ab_account_memo |
| ab_account_oauth |
2021-12-24 01:14:01 +00:00
| product_broadband |* DONE *
| supplier_broadband |* DONE *
2021-12-21 05:47:06 +00:00
| ab_affiliate |
| ab_asset |
| ab_asset_pool |
| ab_cart |
| ab_checkout |
| ab_checkout_notify |
| ab_discount |
| ab_domain_registrar |
| ab_domain_tld |
| ab_email_log |
| ab_email_setup |
| ab_email_template |
| ab_email_template_translate |
| ab_export |
| ab_export_datamap |
| ab_export_item |
| ab_export_module |
| ab_group |
| ab_group_method |
| ab_host_server |
| ab_host_server_affiliate |
| ab_host_server_id |
| ab_host_tld_id |
| ab_import |
| ab_invoice |
| ab_invoice_item |
| ab_invoice_item_discount |
| ab_invoice_item_tax |
| ab_invoice_memo |
| ab_log_error |
| ab_module |
| ab_module_method |
| ab_module_method_token |
| ab_oauth |
| ab_pivot_product_cat |
2021-12-24 01:14:01 +00:00
| products |* PARTIAL * - make model / model_id NOT NULL
2021-12-21 05:47:06 +00:00
| ab_product_cat |
| ab_product_cat_translate |
| ab_product_translate |
| ab_record_id |
| rtm |* DONE *
| ab_service |
| ab_service__adsl |
| ab_service__adsl_traffic |
| ab_service__hosting |
| ab_service__ssl |
| ab_service__voip |
| ab_service_change |
| ab_service_memo |
| ab_setup_invoice |
| ab_ssl |
| ab_ssl_ca |
| ab_static_page |
| ab_static_page_category |
| ab_static_page_translate |
| ab_task |
| ab_task_log |
| ab_voip_plan |
2021-12-24 01:14:01 +00:00
| accounts |* PARTIAL * - make timestamp columns , make date_expire timestamp
2021-12-21 05:47:06 +00:00
| charges |
| countries |* DONE *
| currencies |* DONE *
| external_account |
| external_integrations |
| failed_jobs |* N / A *
| invites |
| jobs |* N / A *
| languages |* DONE *
| migrations |* N / A *
| oauth_access_tokens |
| oauth_auth_codes |
| oauth_clients |
| oauth_personal_access_clients |
| oauth_refresh_tokens |
| password_resets |
| payment_items |
| payments |
| quickbooks_tokens |
| service__generic |
| service_domains |
| site_details |* DONE *
| sites |* DONE *
| supplier_details |* DONE *
| suppliers |* DONE *
| taxes |* DONE *
2021-12-24 01:14:01 +00:00
| users |* DONE *
2021-12-21 05:47:06 +00:00
*/
class IntUnsigned extends Migration
{
public function up ()
{
$constraints = [
'ab_account_billing' => [ 'fk_ab_a' , 'fk_ab_s' ],
'ab_account_group' => [ 'fk_ag_acc' , 'fk_ag_grp' ],
'ab_account_log' => [ 'fk_al_acc' ],
'ab_account_oauth' => [ 'fk_ao_a' , 'fk_ao_o' , 'site_user_id' ],
'ab_adsl_plan' => [ 'fk_ap_asp' ],
'ab_adsl_supplier' => [ 'fk_as_set' ],
'ab_adsl_supplier_plan' => [ 'fk_asp_as' ],
'ab_affiliate' => [ 'fk_aff_acc' ],
'ab_cart' => [ 'fk_mod_crt' ],
'ab_checkout' => [ 'fk_cko_set' ],
'ab_checkout_notify' => [ 'fk_cn_c' ],
'ab_domain_tld' => [ 'fk_ht_hrp' ],
'ab_email_log' => [ 'fk_el_acc' , 'fk_el_ett' , 'fk_el_mod' ],
'ab_email_setup' => [ 'fk_es_acc' ],
'ab_email_template' => [ 'fk_et_es' ],
'ab_email_template_translate' => [ 'fk_emt_et' , 'fk_emt_lan' ],
'ab_export' => [ 'fk_exp_set' ],
'ab_export_datamap' => [ 'fk_edm_exm' , 'fk_edm_mod' ],
'ab_export_item' => [ 'fk_eit_exm' ],
'ab_export_module' => [ 'fk_exm_exp' , 'fk_exm_mod' ],
'ab_group' => [ 'fk_grp_set' ],
'ab_group_method' => [ 'fk_gm_grp' , 'fk_gm_mm' ],
'ab_host_server_affiliate' => [ 'fk_hsa_aff' , 'fk_hsa_hs' ],
'ab_invoice' => [ 'fk_inv_acc' ],
'ab_invoice_item' => [ 'fk_ii_inv' , 'fk_ii_mod' , 'fk_ii_pdt' , 'fk_ii_svc' ],
'ab_invoice_item_tax' => [ 'fk_iit_ii' , 'fk_iit_tax' ],
'ab_invoice_memo' => [ 'fk_im_acc' , 'fk_im_inv' ],
'ab_module' => [ 'fk_mod' , 'fk_mod_set' ],
'ab_module_method' => [ 'fk_mm_mod' ],
'ab_module_method_token' => [ 'fk_mmt_acc' , 'fk_mmt_mm' ],
'ab_oauth' => [ 'fk_o_set' ],
'ab_pivot_product_cat' => [ 'fk_p' , 'fk_pc' ],
'ab_product' => [ 'fk_pdt_set' ],
'ab_product_cat_translate' => [ 'fk_pct_lan' , 'fk_pct_pc' ],
'ab_product_cat' => [ 'fk_pc_pc' , 'fk_pc_set' ],
'ab_product_translate' => [ 'fk_pt_l' , 'fk_pt_p' ],
'ab_record_id' => [ 'fk_rid_mod' , 'fk_rid_set' ],
'rtm' => [ 'fk_rtm_acc' , 'fk_rtm_rtm' ],
'ab_service__adsl_traffic' => [ 'ab_service__adsl_traffic_ab_service_adsl_id_foreign' , 'fk_sat_as' ],
'ab_service__adsl' => [ 'fk_sa_ap' , 'fk_sa_svc' ],
'ab_service__hosting' => [ 'fk_sh_svc' , 'fk_sh_ht' , 'fk_sh_hs' ],
'ab_service__ssl' => [ 'fk_ss_sca' , 'fk_ss_svc' ],
'ab_service_change' => [ 'fk_sc_a' , 'fk_sc_p' , 'fk_sc_s' ],
'ab_service_memo' => [ 'fk_sm_acc' , 'fk_sm_svc' ],
'ab_service' => [ 'ab_service_orderby_id_foreign' , 'fk_svc_acc' , 'fk_svc_grp' ],
'ab_ssl' => [ 'fk_ssl_set' ],
'ab_ssl_ca' => [ 'fk_sca' , 'fk_sca_acc' ],
'ab_task_log' => [ 'fk_tl_t' ],
'ab_task' => [ 'fk_tsk_set' ],
'accounts' => [ 'ab_account_user_id_foreign' , 'fk_acc_cty' , 'fk_acc_cur' , 'fk_acc_lan' , 'fk_acc_rtm' , 'fk_acc_set' ],
'charges' => [ 'charges_account_id_site_id_foreign' , 'charges_product_id_site_id_foreign' , 'charges_service_id_site_id_foreign' , 'charges_user_id_site_id_foreign' ],
'countries' => [ 'countries_currency_id_foreign' ],
'external_account' => [ 'external_account_account_id_foreign' , 'external_account_external_integration_id_foreign' , 'external_account_site_id_foreign' ],
'external_integrations' => [ 'external_integrations_user_id_foreign' ],
'payment_items' => [ 'fk_pi_inv' , 'payment_items_payment_id_site_id_foreign' ],
'payments' => [ 'fk_pay_acc' , 'fk_pay_acc_b' , 'fk_pay_co' ],
'quickbooks_tokens' => [ 'quickbooks_tokens_user_id_foreign' ],
'service__generic' => [ 'service__generic_product_id_site_id_foreign' , 'service__generic_service_id_site_id_foreign' , 'service__generic_site_id_foreign' ],
'service_domains' => [ 'fk_sd_hrp' , 'fk_sd_ht' , 'fk_sd_svc' ],
'site_details' => [ 'site_details_site_id_foreign' ],
'sites' => [ 'sites_admin_id_site_id_foreign' , 'sites_country_id_foreign' , 'sites_currency_id_foreign' , 'sites_language_id_foreign' ],
'supplier_details' => [ 'supplier_details_site_id_foreign' , 'supplier_details_supplier_id_foreign' ],
'taxes' => [ 'taxes_country_id_foreign' ],
'users' => [ 'users_currency_id_foreign' , 'users_language_id_foreign' , 'users_parent_id_foreign' ],
];
$indexes = [
'ab_account_billing' => [ 'fk_ab_a' , 'fk_ab_s' , 'UNIQUE' ],
'ab_account_group' => [ 'fk_ag_acc_idx' , 'fk_ag_grp_idx' , 'UNIQUE' ],
'ab_account_log' => [ 'fk_al_acc_idx' ],
'ab_account_memo' => [ 'memo' , 'account' , 'IDS' ],
'ab_account_oauth' => [ 'fk_ao_a_idx' , 'fk_ao_o_idx' , 'site_user_id_idx' , 'ab_account_oauth_site_id_user_id_oauth_id_unique' , 'UNIQUE' ],
'ab_adsl_supplier_plan' => [ 'fk_asp_as_idx' ],
'ab_adsl_supplier' => [ 'fk_as_set_idx' ],
'ab_adsl_plan' => [ 'fk_ap_asp_idx' ],
'ab_affiliate' => [ 'fk_aff_acc_idx' ],
'ab_asset_pool' => [ 'main' , 'IDS' ],
'ab_asset' => [ 'assets' , 'asso' , 'service' , 'asset' , 'IDS' ],
'ab_cart' => [ 'fk_mod_crt_idx' ],
'ab_checkout_notify' => [ 'fk_cn_c_idx' ],
'ab_checkout' => [ 'fk_cko_set_idx' ],
'ab_discount' => [ 'start' , 'expire' , 'status' , 'IDS' ],
'ab_domain_registrar' => [ 'fk_hrp_set' , 'IDS' ],
'ab_domain_tld' => [ 'fk_ht_hrp_idx' ],
'ab_email_log' => [ 'fk_el_acc_idx' , 'fk_el_ett_idx' , 'fk_el_mod_idx' ],
'ab_email_setup' => [ 'fk_es_acc_idx' ],
'ab_email_template_translate' => [ 'fk_emt_et_idx' , 'fk_emt_lan_idx' ],
'ab_email_template' => [ 'fk_et_es_idx' ],
'ab_export_datamap' => [ 'fk_edm_mod_idx' , 'fk_edm_mod_idx1' , 'UNIQUE' ],
'ab_export_item' => [ 'fk_exp_eit_idx' , 'UNIQUE' ],
'ab_export_module' => [ 'fk_exp_exm_idx' , 'fk_exp_mod_idx' ],
'ab_export' => [ 'fk_exp_set_idx' , 'UNIQUE' ],
'ab_group_method' => [ 'fk_gm_grp_idx' , 'fk_gm_mm_idx' , 'UNIQUE' ],
'ab_group' => [ 'fk_grp_set_idx' ],
'ab_host_server' => [ 'IDS' ],
'ab_host_server_affiliate' => [ 'fk_hsa_aff_idx' , 'fk_hsa_hs_idx' ],
'ab_import' => [ 'IDS' ],
'ab_invoice_item_discount' => [ 'discounts' , 'invoice_id' , 'dates' , 'accounts' , 'IDS' ],
'ab_invoice_item_tax' => [ 'fk_iit_ii_idx' , 'fk_iit_tax_idx' ],
'ab_invoice_item' => [ 'fk_ii_inv_idx' , 'fk_ii_mod_idx' , 'fk_ii_pdt_idx' , 'fk_ii_svc_idx' , 'UNIQUE' ],
'ab_invoice_memo' => [ 'fk_im_acc_idx' , 'fk_im_inv_idx' ],
'ab_invoice' => [ 'fk_inv_acc_idx' ],
'ab_log_error' => [ 'IDS' ],
'ab_module_method_token' => [ 'fk_mmt_acc_idx' , 'fk_mmt_mm_idx' ],
'ab_module_method' => [ 'fk_mm_mod_idx' , 'UNIQUE' , 'UNIQUE2' ],
'ab_module' => [ 'fk_mod_idx' , 'fk_mod_set_idx' , 'UNIQUE' ],
'ab_oauth' => [ 'fk_o_set_idx' , 'ab_oauth_site_id_name_unique' ],
'ab_pivot_product_cat' => [ 'fk_p_idx' , 'fk_pc_idx' , 'UNIQUE' ],
'ab_product_cat' => [ 'fk_pc_pc_idx' , 'fk_pc_set_idx' ],
'ab_product' => [ 'fk_pdt_set_idx' ],
'ab_product_cat_translate' => [ 'fk_pct_lan_idx' , 'fk_pct_pc_idx' , 'UNIQUE' ],
'ab_product_translate' => [ 'fk_pt_l_idx' , 'fk_pt_p_idx' , 'UNIQUE' ],
'ab_record_id' => [ 'fk_rid_mod_idx' , 'fk_rid_set_idx' ],
'rtm' => [ 'fk_rtm_set_idx' , 'fk_rtm_acc_p_idx' , 'uq_name' ],
'ab_service' => [ 'ab_service_orderby_id_foreign' , 'fk_svc_acc_idx' , 'fk_svc_grp_idx' , 'UNIQUE' ],
'ab_service__adsl' => [ 'fk_service_number' , 'fk_sa_svc_idx' , 'fk_sa_ap_idx' , 'uq_service_username' , 'UNIQUE' ],
'ab_service__adsl_traffic' => [ 'fk_sat_as_idx' , 'in_sat_SERVICE_DATE' , 'in_sat_DATE' , 'in_sat_SERVICE' , 'ab_service__adsl_traffic_ab_service_adsl_id_date_time_unique' ],
'ab_service__hosting' => [ 'fk_sh_hs_idx' , 'fk_domain_tld_id' , 'fk_service_id' , 'uq_ftp_username' , 'UNIQUE' ],
'ab_service__ssl' => [ 'fk_ss_sca_idx' , 'fk_ss_svc_idx' , 'UNIQUE' ],
'ab_service_change' => [ 'fk_s_sc_idx' , 'fk_s_p_idx' , 'fk_sc_a_idx' ],
'ab_service_memo' => [ 'fk_sm_acc_idx' , 'fk_sm_svc_idx' ],
'ab_setup_invoice' => [ 'IDS' ],
'ab_ssl' => [ 'fk_ssl_set_idx' ],
'ab_ssl_ca' => [ 'fk_sca_idx' , 'fk_sca_acc_idx' ],
'ab_static_page' => [ 'cat' , 'start' , 'expire' , 'name' , 'IDS' ],
'ab_static_page_category' => [ 'status' , 'name' , 'IDS' ],
'ab_static_page_translate' => [ 'IDS' ],
'ab_task' => [ 'fk_tsk_set_idx' ],
'ab_task_log' => [ 'fk_tl_task' ],
'accounts' => [ 'ab_account_user_id_foreign' , 'fk_acc_set_idx' , 'fk_acc_lan_idx' , 'fk_acc_rtm_idx' , 'fk_acc_cty_idx' , 'fk_acc_cur_idx' ],
'charges' => [ 'charges_account_id_site_id_foreign' , 'charges_product_id_site_id_foreign' , 'charges_service_id_site_id_foreign' , 'charges_user_id_site_id_foreign' ],
'countries' => [ 'countries_currency_id_foreign' , 'name_UNIQUE' , 'two_code_UNIQUE' , 'three_code_UNIQUE' ],
'currencies' => [ 'three_digit_UNIQUE' ],
'external_account' => [ 'external_account_external_integration_id_foreign' , 'external_account_account_id_foreign' , 'sae' ],
'external_integrations' => [ 'external_integrations_user_id_foreign' ],
'languages' => [ 'name_UNIQUE' , 'iso_UNIQUE' ],
'payment_items' => [ 'fk_pi_inv_idx' , 'payment_items_payment_id_site_id_foreign' , 'payment_items_site_id_payment_id_invoice_id_unique' ],
'payments' => [ 'fk_pay_acc_idx' , 'fk_pay_cp_idx' , 'fk_pay_acc_b_idx' , 'payments_site_id_id_unique' ],
'quickbooks_tokens' => [ 'quickbooks_tokens_user_id_foreign' ],
'service__generic' => [ 'service__generic_service_id_site_id_foreign' , 'service__generic_product_id_site_id_foreign' , 'service__generic_site_id_service_id_unique' ],
'service_domains' => [ 'fk_sd_svc_idx' , 'fk_sd_hrp_idx' , 'fk_sd_ht_idx' , 'UNIQUE' ],
'site_details' => [ 'site_details_site_id_key_unique' ],
'sites' => [ 'sites_site_id_index' , 'sites_admin_id_site_id_foreign' , 'sites_country_id_foreign' , 'sites_currency_id_foreign' , 'sites_language_id_foreign' , 'sites_site_id_url_unique' ],
'supplier_details' => [ 'supplier_details_site_id_foreign' , 'supplier_details_supplier_id_site_id_unique' ],
'taxes' => [ 'UNIQUE' ],
'users' => [ 'users_site_id_email_unique' , 'users_parent_id_foreign' , 'users_language_id_foreign' , 'users_currency_id_foreign' , 'site_user_id_idx' ],
];
Schema :: dropIfExists ( 'ab_host_server_id' );
Schema :: dropIfExists ( 'ab_host_tld_id' );
DB :: statement ( 'ALTER TABLE ab_rtm RENAME TO rtm' );
foreach ( $constraints as $table => $constraint ) {
Schema :: table ( $table , function ( Blueprint $table ) use ( $constraint ) {
foreach ( $constraint as $item )
$table -> dropForeign ( $item );
});
}
foreach ( $indexes as $table => $constraint ) {
Schema :: table ( $table , function ( Blueprint $table ) use ( $constraint ) {
foreach ( $constraint as $item )
$table -> dropIndex ( $item );
});
}
$tables = collect ( array_unique ( array_merge ( array_keys ( $constraints ), array_keys ( $indexes ))));
$except = [
'ab_group' , 'ab_record_id' , 'ab_service__adsl_traffic' , 'accounts' , 'external_account' , 'site_details' ,
'ab_account_memo' , 'ab_asset_pool' , 'ab_asset' , 'ab_discount' , 'ab_host_server' , 'ab_import' , 'ab_invoice_item_discount' ,
'ab_log_error' , 'ab_setup_invoice' , 'ab_static_page' , 'ab_static_page_category' , 'ab_static_page_translate' ,
'ab_email_template' ,
];
foreach ( $tables -> diff ( $except ) as $table ) {
DB :: statement ( sprintf ( 'ALTER TABLE %s MODIFY id int unsigned auto_increment' , $table ));
if ( Schema :: hasColumn ( $table , 'site_id' )) {
DB :: statement ( sprintf ( 'ALTER TABLE %s MODIFY site_id int unsigned NOT NULL' , $table ));
}
}
Schema :: table ( 'sites' , function ( Blueprint $table ) {
$table -> index ([ 'site_id' ]);
});
foreach ( $tables -> diff ( $except ) -> diff ([ 'sites' ]) as $table ) {
if ( Schema :: hasColumn ( $table , 'site_id' )) {
dump ( $table );
Schema :: table ( $table , function ( Blueprint $table ) {
$table -> foreign ([ 'site_id' ]) -> references ([ 'site_id' ]) -> on ( 'sites' );
$table -> index ([ 'id' , 'site_id' ]);
});
}
}
DB :: statement ( 'ALTER TABLE currencies RENAME COLUMN iso_code TO iso' );
Schema :: table ( 'currencies' , function ( Blueprint $table ) {
$table -> unique ([ 'name' ]);
$table -> unique ([ 'iso' ]);
});
Schema :: table ( 'languages' , function ( Blueprint $table ) {
$table -> unique ([ 'name' ]);
$table -> unique ([ 'iso' ]);
});
DB :: statement ( 'ALTER TABLE countries MODIFY currency_id int unsigned' );
Schema :: table ( 'countries' , function ( Blueprint $table ) {
$table -> foreign ([ 'currency_id' ]) -> references ([ 'id' ]) -> on ( 'currencies' );
$table -> index ([ 'id' , 'currency_id' ]);
$table -> unique ([ 'name' ]);
$table -> unique ([ 'two_code' ]);
$table -> unique ([ 'three_code' ]);
});
DB :: statement ( 'ALTER TABLE users MODIFY country_id int unsigned NOT NULL,MODIFY language_id int unsigned NOT NULL,MODIFY currency_id int unsigned NOT NULL' );
Schema :: table ( 'users' , function ( Blueprint $table ) {
2021-12-24 01:14:01 +00:00
$table -> dropColumn ([ 'currency_id' ]);
$table -> foreign ([ 'country_id' ]) -> references ([ 'id' ]) -> on ( 'countries' );
2021-12-21 05:47:06 +00:00
$table -> foreign ([ 'parent_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'users' );
$table -> foreign ([ 'language_id' ]) -> references ([ 'id' ]) -> on ( 'languages' );
});
DB :: statement ( 'DELETE FROM accounts WHERE id=0' );
DB :: statement ( 'ALTER TABLE accounts MODIFY id int unsigned auto_increment' );
DB :: statement ( 'ALTER TABLE accounts MODIFY site_id int unsigned NOT NULL' );
DB :: statement ( 'ALTER TABLE accounts MODIFY country_id int unsigned NOT NULL,MODIFY language_id int unsigned NOT NULL,MODIFY currency_id int unsigned NOT NULL,MODIFY rtm_id int unsigned DEFAULT NULL,MODIFY active tinyint(1) NOT NULL' );
Schema :: table ( 'accounts' , function ( Blueprint $table ) {
2021-12-24 01:14:01 +00:00
$table -> dropColumn ([ 'currency_id' , 'language_id' ]);
2021-12-21 05:47:06 +00:00
$table -> foreign ([ 'site_id' ]) -> references ([ 'site_id' ]) -> on ( 'sites' );
$table -> index ([ 'id' , 'site_id' ]);
2021-12-24 01:14:01 +00:00
$table -> foreign ([ 'country_id' ]) -> references ([ 'id' ]) -> on ( 'countries' );
2021-12-21 05:47:06 +00:00
$table -> foreign ([ 'user_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'users' );
$table -> foreign ([ 'rtm_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'rtm' );
});
DB :: statement ( 'ALTER TABLE rtm MODIFY account_id int unsigned NOT NULL,MODIFY parent_id int unsigned' );
Schema :: table ( 'rtm' , function ( Blueprint $table ) {
$table -> foreign ([ 'parent_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'rtm' );
$table -> foreign ([ 'account_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'accounts' );
});
DB :: statement ( 'ALTER TABLE sites MODIFY country_id int unsigned NOT NULL,MODIFY language_id int unsigned NOT NULL,MODIFY currency_id int unsigned NOT NULL' );
Schema :: table ( 'sites' , function ( Blueprint $table ) {
$table -> foreign ([ 'country_id' , 'currency_id' ]) -> references ([ 'id' , 'currency_id' ]) -> on ( 'countries' );
$table -> foreign ([ 'admin_id' , 'site_id' ]) -> references ([ 'id' , 'site_id' ]) -> on ( 'users' );
$table -> foreign ([ 'language_id' ]) -> references ([ 'id' ]) -> on ( 'languages' );
});
DB :: statement ( 'ALTER TABLE site_details MODIFY site_id int unsigned NOT NULL' );
Schema :: table ( 'site_details' , function ( Blueprint $table ) {
$table -> foreign ([ 'site_id' ]) -> references ([ 'id' ]) -> on ( 'sites' );
$table -> unique ([ 'site_id' , 'key' ]);
});
DB :: statement ( 'ALTER TABLE taxes MODIFY country_id int unsigned NOT NULL' );
Schema :: table ( 'taxes' , function ( Blueprint $table ) {
$table -> foreign ([ 'country_id' ]) -> references ([ 'id' ]) -> on ( 'countries' );
$table -> unique ([ 'country_id' , 'zone' ]);
});
}
}