<?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('upwork_earnings', function (Blueprint $table) {
            // Identificador único por fila del CSV (Ref ID) → permite re-importar sin duplicados
            $table->string('ref_id')->nullable()->unique()->after('id');

            // Fecha real del pago de Upwork (columna "Date" del CSV)
            $table->date('transaction_date')->nullable()->after('ref_id');

            // Nombre del cliente tal como aparece en el CSV (Client team)
            $table->string('client_name')->nullable()->after('team_name');

            // contract_upwork_id no está disponible en Transaction History → hacer nullable
            $table->string('contract_upwork_id')->nullable()->change();

            // Eliminar constraint antiguo basado en (contract_upwork_id, date_from, date_to)
            // ya que ahora usamos ref_id como identificador único
            $table->dropUnique('upwork_earnings_unique');
        });
    }

    public function down(): void
    {
        Schema::table('upwork_earnings', function (Blueprint $table) {
            $table->dropColumn(['ref_id', 'transaction_date', 'client_name']);
            $table->string('contract_upwork_id')->nullable(false)->change();
            $table->unique(['contract_upwork_id', 'date_from', 'date_to'], 'upwork_earnings_unique');
        });
    }
};
