You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
3.7 KiB
PHP

<?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::connection('pgsql_rauru')->hasTable('games')) {
Schema::connection('pgsql_rauru')->create('games', function (Blueprint $table) {
$table->increments('id');
$table->json('age_ratings');
$table->string('aggregated_rating')->nullable();
$table->integer('aggregated_rating_count')->nullable();
$table->json('alternative_names');
$table->json('artworks')->nullable();
$table->json('bundles')->nullable();
$table->string('category');//enum
$table->uuid('checksum');
$table->json('collection')->nullable();
//$table->string('cover_id');
//$table->string('cover_image_path');
$table->json('cover');
$table->json('dlcs')->nullable();
$table->json('expansions')->nullable();
$table->json('expanded_games')->nullable();
$table->json('external_games');//IDs on other Platforms
$table->integer('first_release_date'); #Timestamp
$table->integer('follows')->nullable();
$table->json('forks')->nullable();
$table->json('franchise')->nullable();
$table->json('franchises')->nullable();
$table->json('game_engines')->nullable();
$table->json('game_localizations')->nullable();
$table->json('game_modes')->nullable();
$table->json('genres');
$table->integer('hypes')->nullable();
$table->json('involved_companies');
$table->json('keywords');
$table->json('language_supports')->nullable();
$table->json('multiplayer_modes')->nullable();
$table->string('name');
$table->string('parent_game')->nullable();
$table->json('platforms');
$table->json('player_perspectives')->nullable();
$table->json('ports')->nullable();
$table->string('rating');//formated double
$table->integer('rating_count');
$table->json('release_dates')->nullable();
$table->json('remakes')->nullable();
$table->json('remasters')->nullable();
$table->json('screenshots')->nullable();
$table->json('similar_games');
$table->string('slug');
$table->json('standalone_expansions')->nullable();
$table->integer('status')->nullable();//enum
$table->text('storyline')->nullable();
$table->text('summary');
$table->json('tags');
$table->json('themes');
$table->double('total_rating');//formated double
$table->integer('total_rating_count');
#$table->date('updated_at');
$table->string('url');//IGDB Url
$table->string('version_parent')->nullable();
$table->string('version_title')->nullable();
$table->json('videos')->nullable();
$table->json('websites');
$table->timestamps();
});
}
}
/**
* Reverse the migrations.
*/
public function down(): void
{
if (Schema::connection('pgsql_rauru')->hasTable('games')) {
Schema::connection('pgsql_rauru')->dropIfExists('games');
}
}
};