<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;

/**
 * PRC-889-BUG-02 — invoice_billing_jobs.type ENUM genişletme.
 *
 * Orijinal migration (2025_01_21_000002) yalnız ('automatic','manual') içeriyordu.
 * DispatchLegalInvoiceListener (PRC-75, 2026) type='paid'/'refunded'/'cancelled'
 * değerlerini yazmaya çalışır; ENUM kısıtı nedeniyle SQLSTATE 1265 (data truncated)
 * hatası fırlatılır ve PRC-75 akışı iş kaydı oluşturamaz.
 *
 * Bu migration PRC-75 değerlerini ENUM'a ekler.
 */
return new class extends Migration
{
    public function up(): void
    {
        DB::statement(
            "ALTER TABLE invoice_billing_jobs " .
            "MODIFY COLUMN type ENUM('automatic','manual','paid','refunded','cancelled') " .
            "NOT NULL DEFAULT 'automatic'"
        );
    }

    public function down(): void
    {
        // ⚠️ ENUM daraltma: rollback anında 'paid'/'refunded'/'cancelled' tipli
        // satır varsa MySQL strict modda hata verir (non-strict'te '' truncate).
        // Geri-alma yalnız bu tiplerde satır yokken güvenlidir.
        DB::statement(
            "ALTER TABLE invoice_billing_jobs " .
            "MODIFY COLUMN type ENUM('automatic','manual') " .
            "NOT NULL DEFAULT 'automatic'"
        );
    }
};
