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

<?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']);
});
}
};