You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.8 KiB
49 lines
1.8 KiB
<?php
|
|
|
|
use Illuminate\Database\Migrations\Migration;
|
|
use Illuminate\Database\Schema\Blueprint;
|
|
use Illuminate\Support\Facades\Schema;
|
|
|
|
return new class extends Migration
|
|
{
|
|
public function up(): void
|
|
{
|
|
Schema::table('activities', function (Blueprint $table) {
|
|
$table->unsignedBigInteger('activity_type_dict_item_id')->nullable()->after('title');
|
|
$table->text('intro_html')->nullable()->after('location');
|
|
});
|
|
|
|
Schema::create('activity_signup_checkins', function (Blueprint $table) {
|
|
$table->id();
|
|
$table->unsignedBigInteger('activity_signup_id');
|
|
$table->unsignedBigInteger('activity_session_id');
|
|
$table->timestamp('checked_in_at')->nullable();
|
|
$table->timestamps();
|
|
|
|
$table->unique(['activity_signup_id', 'activity_session_id'], 'activity_signup_session_unique');
|
|
$table->index('activity_session_id');
|
|
});
|
|
|
|
Schema::table('activities', function (Blueprint $table) {
|
|
$table->dropIndex(['activity_type', 'progress_status', 'published']);
|
|
$table->dropColumn('activity_type');
|
|
$table->index(['activity_type_dict_item_id', 'progress_status', 'published'], 'activities_type_progress_published_idx');
|
|
});
|
|
}
|
|
|
|
public function down(): void
|
|
{
|
|
Schema::table('activities', function (Blueprint $table) {
|
|
$table->dropIndex('activities_type_progress_published_idx');
|
|
$table->string('activity_type', 32)->nullable()->after('title');
|
|
$table->index(['activity_type', 'progress_status', 'published']);
|
|
});
|
|
|
|
Schema::dropIfExists('activity_signup_checkins');
|
|
|
|
Schema::table('activities', function (Blueprint $table) {
|
|
$table->dropColumn(['activity_type_dict_item_id', 'intro_html']);
|
|
});
|
|
}
|
|
};
|