<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

/**
 * Was der Kunde beim Kuendigen zu seinen Daten gesagt hat.
 *
 * `export_wish` fuehrt DREI Zustaende, nicht zwei: `null` heisst "noch nicht
 * gefragt". Das ist kein Feinschliff — jede Instanz, die vor diesem Bau
 * gekuendigt wurde, hat die Frage nie gesehen, und ihr ein "nein" zu
 * unterstellen hiesse, einer Handvoll Menschen still zu antworten, die nie
 * gefragt wurden.
 *
 * `export_reminded_at` haelt fest, dass die Erinnerung sieben Tage vor Ende
 * hinaus ist. Ohne diese Spalte schickte ein stuendlich laufender Zeitplan sie
 * jede Stunde erneut — und eine Erinnerung, die im Sechserpack kommt, liest
 * sich als Mahnung.
 */
return new class extends Migration
{
    public function up(): void
    {
        Schema::table('instances', function (Blueprint $table) {
            $table->boolean('export_wish')->nullable()->after('service_ends_at');
            $table->timestamp('export_reminded_at')->nullable()->after('export_wish');
        });
    }

    public function down(): void
    {
        Schema::table('instances', function (Blueprint $table) {
            $table->dropColumn(['export_wish', 'export_reminded_at']);
        });
    }
};
