classify admin
This commit is contained in:
239
database/migrations/2024_05_31_080315_v1.1.0.php
Normal file
239
database/migrations/2024_05_31_080315_v1.1.0.php
Normal file
@@ -0,0 +1,239 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void {
|
||||
if (!Schema::hasTable('blogs')) {
|
||||
Schema::create('blogs', static function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('title', 512);
|
||||
$table->string('slug', 512);
|
||||
$table->text('description')->nullable();
|
||||
$table->string('image', 512);
|
||||
$table->string('tags')->nullable();
|
||||
$table->integer('views')->default(0);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
if (!Schema::hasTable('category_translations')) {
|
||||
Schema::create('category_translations', static function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->foreignId('category_id')->references('id')->on('categories')->onDelete('cascade');
|
||||
$table->foreignId('language_id')->references('id')->on('languages')->onDelete('cascade');
|
||||
$table->string('name', 125);
|
||||
$table->timestamps();
|
||||
$table->unique(['category_id', 'language_id']);
|
||||
});
|
||||
}
|
||||
|
||||
if (!Schema::hasTable('countries')) {
|
||||
Schema::create('countries', static function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name', 100);
|
||||
$table->char('iso3', 3)->nullable();
|
||||
$table->char('numeric_code', 3)->nullable();
|
||||
$table->char('iso2', 2)->nullable();
|
||||
$table->string('phonecode', 255)->nullable();
|
||||
$table->string('capital', 255)->nullable();
|
||||
$table->string('currency', 255)->nullable();
|
||||
$table->string('currency_name', 255)->nullable();
|
||||
$table->string('currency_symbol', 255)->nullable();
|
||||
$table->string('tld', 255)->nullable();
|
||||
$table->string('native', 255)->nullable();
|
||||
$table->string('region', 255)->nullable();
|
||||
$table->integer('region_id')->nullable();
|
||||
$table->string('subregion', 255)->nullable();
|
||||
$table->integer('subregion_id')->nullable();
|
||||
$table->string('nationality', 255)->nullable();
|
||||
$table->text('timezones')->nullable();
|
||||
$table->text('translations')->nullable();
|
||||
$table->decimal('latitude')->nullable();
|
||||
$table->decimal('longitude')->nullable();
|
||||
$table->string('emoji', 191)->nullable();
|
||||
$table->string('emojiU', 191)->nullable();
|
||||
$table->boolean('flag')->nullable();
|
||||
$table->string('wikiDataId', 255)->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
if (!Schema::hasTable('states')) {
|
||||
Schema::create('states', static function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name', 255);
|
||||
$table->foreignId('country_id')->references('id')->on('countries')->onDelete('cascade');
|
||||
$table->char('state_code', 2);
|
||||
$table->string('fips_code', 255)->nullable();
|
||||
$table->string('iso2', 255)->nullable();
|
||||
$table->string('type', 191)->nullable();
|
||||
$table->decimal('latitude')->nullable();
|
||||
$table->decimal('longitude')->nullable();
|
||||
$table->boolean('flag')->nullable();
|
||||
$table->string('wikiDataId', 255)->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
if (!Schema::hasTable('cities')) {
|
||||
Schema::create('cities', static function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name', 255);
|
||||
$table->foreignId('state_id')->references('id')->on('states')->onDelete('cascade');
|
||||
$table->string('state_code', 255);
|
||||
$table->foreignId('country_id')->references('id')->on('countries')->onDelete('cascade');
|
||||
$table->char('country_code', 2);
|
||||
$table->decimal('latitude')->nullable();
|
||||
$table->decimal('longitude')->nullable();
|
||||
$table->boolean('flag')->nullable();
|
||||
$table->string('wikiDataId', 255)->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
if (!Schema::hasTable('faqs')) {
|
||||
Schema::create('faqs', static function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('question');
|
||||
$table->string('answer');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
if (!Schema::hasTable('social_logins')) {
|
||||
Schema::create('social_logins', static function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->foreignId('user_id')->references('id')->on('users')->onDelete('cascade');
|
||||
$table->string('firebase_id', 512);
|
||||
$table->enum('type', ['google', 'email', 'phone']);
|
||||
$table->timestamps();
|
||||
$table->unique(['user_id', 'type']);
|
||||
});
|
||||
}
|
||||
|
||||
if (!Schema::hasTable('areas')) {
|
||||
Schema::create('areas', static function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name', 255);
|
||||
$table->foreignId('city_id')->references('id')->on('cities')->onDelete('cascade');
|
||||
$table->foreignId('state_id')->references('id')->on('states')->onDelete('cascade');
|
||||
$table->string('state_code', 255)->nullable();
|
||||
$table->foreignId('country_id')->references('id')->on('countries')->onDelete('cascade');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Schema::table('sliders', static function (Blueprint $table) {
|
||||
if (!Schema::hasColumn('sliders', 'model_id') && !Schema::hasColumn('sliders', 'model_type')) {
|
||||
$table->nullableMorphs('model');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Schema::table('user_purchased_packages', static function (Blueprint $table) {
|
||||
if (!Schema::hasColumn('user_purchased_packages', 'payment_transactions_id')) {
|
||||
$table->foreignId('payment_transactions_id')->after('used_limit')->nullable()->references('id')->on('payment_transactions')->onDelete('cascade');
|
||||
}
|
||||
});
|
||||
|
||||
Schema::table('users', static function (Blueprint $table) {
|
||||
if (!Schema::hasColumn('users', 'country_code')) {
|
||||
$table->string('country_code')->nullable();
|
||||
}
|
||||
});
|
||||
|
||||
Schema::table('payment_transactions', static function (Blueprint $table) {
|
||||
if (Schema::hasColumn('payment_transactions', 'payment_id')) {
|
||||
$table->dropColumn('payment_id');
|
||||
}
|
||||
|
||||
if (Schema::hasColumn('payment_transactions', 'payment_signature')) {
|
||||
$table->dropColumn('payment_signature');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
Schema::table('items', static function (Blueprint $table) {
|
||||
if (!Schema::hasColumn('items', 'area_id')) {
|
||||
$table->foreignId('area_id')->after('country')->nullable()->references('id')->on('areas')->onDelete('restrict');
|
||||
}
|
||||
|
||||
if (!Schema::hasColumn('items', 'slug')) {
|
||||
$table->string('slug', 512)->after('name');
|
||||
}
|
||||
|
||||
if (!Schema::hasColumn('items', 'rejected_reason')) {
|
||||
$table->string('rejected_reason')->after('status')->nullable();
|
||||
}
|
||||
});
|
||||
|
||||
Schema::table('categories', static function (Blueprint $table) {
|
||||
if (!Schema::hasColumn('categories', 'slug')) {
|
||||
$table->string('slug', 512);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
Schema::table('languages', static function (Blueprint $table) {
|
||||
if (!Schema::hasColumn('languages', 'slug')) {
|
||||
$table->string('slug', 512)->after('name');
|
||||
}
|
||||
if (!Schema::hasColumn('languages', 'web_file')) {
|
||||
$table->string('web_file')->after('panel_file');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public
|
||||
function down(): void {
|
||||
Schema::dropIfExists('blogs');
|
||||
Schema::dropIfExists('category_translations');
|
||||
Schema::dropIfExists('faqs');
|
||||
Schema::dropIfExists('social_logins');
|
||||
Schema::dropIfExists('areas');
|
||||
|
||||
Schema::table('sliders', static function (Blueprint $table) {
|
||||
$table->dropMorphs('model');
|
||||
});
|
||||
|
||||
Schema::table('user_purchased_packages', static function (Blueprint $table) {
|
||||
$table->dropColumn('payment_transactions_id');
|
||||
});
|
||||
|
||||
Schema::table('users', static function (Blueprint $table) {
|
||||
$table->dropColumn('country_code');
|
||||
});
|
||||
|
||||
Schema::table('payment_transactions', static function (Blueprint $table) {
|
||||
$table->string('payment_id')->nullable();
|
||||
$table->string('payment_signature')->nullable();
|
||||
});
|
||||
|
||||
Schema::table('languages', static function (Blueprint $table) {
|
||||
$table->dropColumn('web_file');
|
||||
});
|
||||
|
||||
Schema::table('items', static function (Blueprint $table) {
|
||||
$table->dropColumn('area_id');
|
||||
$table->dropColumn('slug');
|
||||
});
|
||||
|
||||
Schema::table('categories', static function (Blueprint $table) {
|
||||
$table->dropColumn('slug');
|
||||
});
|
||||
|
||||
Schema::table('languages', static function (Blueprint $table) {
|
||||
$table->dropColumn('web_file');
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user