<?php

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

/**
 * Odalama: bir satıştaki konaklama odaları.
 *
 * Kültür + yurtdışı turlarında satış kartından oda kurgusu yapılır; operasyon
 * tarafındaki "Odalama" sekmesi aynı tabloyu okur. Yolcular sale_passengers
 * pivotundaki sale_room_id ile odalara bağlanır.
 */
return new class extends Migration
{
    public function up(): void
    {
        Schema::create('sale_rooms', function (Blueprint $table) {
            $table->id();
            $table->foreignId('sale_id')->constrained('sales')->cascadeOnDelete();

            // single|double|triple|quad|family — TR etiketler SaleRoom::ROOM_TYPES
            $table->string('room_type', 20)->default('double');
            $table->string('label', 60)->nullable();     // "Oda 1" gibi kullanıcı etiketi
            $table->unsignedTinyInteger('capacity')->default(2);

            $table->unsignedSmallInteger('adult_count')->default(0);
            $table->unsignedSmallInteger('child_count')->default(0);
            $table->unsignedSmallInteger('infant_count')->default(0);

            $table->boolean('extra_bed')->default(false);
            $table->decimal('unit_price', 10, 2)->nullable();
            $table->text('notes')->nullable();
            $table->integer('sort_order')->default(0);

            $table->timestamps();

            $table->index(['sale_id', 'sort_order'], 'sale_rooms_sale_order_idx');
        });
    }

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