<?php

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

/**
 * TUREB Rehber Veritabanı aynası (https://www.tureb.org.tr/RehberVeritabani).
 * Acentenin kendi kaynaklarından (resources) tamamen ayrı, salt-okunur bir
 * sicildir; acente buradan bir rehberi seçip kendi kaynağına kopyalayabilir.
 *
 * Kimlik notu: TUREB satır başına bir id vermiyor. Kimlik, ad+oda+telefon+
 * e-posta'dan türetilen source_hash'tir. Telefonu/e-postası boş adaşlar tek
 * kayda düşebilir — kaynakta ayırt edici alan olmadığı için kabul edilen sınır.
 */
return new class extends Migration
{
    public function up(): void
    {
        Schema::create('tureb_guides', function (Blueprint $table) {
            $table->id();
            $table->string('source_hash', 64)->unique(); // ad+oda+telefon+e-posta
            $table->string('full_name', 200);
            $table->string('chamber_code', 12)->nullable(); // TUREB'de boş gelen satırlar var
            $table->json('regions')->nullable();            // ["Ülkesel","Ege"] — kişi birden fazla bölgede olabiliyor
            $table->json('languages')->nullable();          // ["İngilizce","Almanca"]
            $table->string('phone', 30)->nullable();
            $table->string('email', 191)->nullable();
            $table->string('status', 20)->nullable();       // Eylemli | Eylemsiz
            $table->timestamp('fetched_at')->nullable();    // bu satırın TUREB'den çekildiği an
            $table->timestamps();

            $table->index('full_name');
            $table->index('chamber_code');
            $table->index('status');
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('tureb_guides');
    }
};
