<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     * 
     * 生產工單明細表 (BOM)，記錄使用的原物料。
     */
    public function up(): void
    {
        Schema::create('production_order_items', function (Blueprint $table) {
            $table->id();
            
            // 所屬生產工單
            $table->foreignId('production_order_id')->constrained()->onDelete('cascade')
                ->comment('所屬生產工單');
            
            // 使用的庫存（含商品與批號）
            $table->foreignId('inventory_id')->constrained()->onDelete('restrict')
                ->comment('使用的庫存紀錄 (含 product, batch)');
            
            // 使用量
            $table->decimal('quantity_used', 10, 4)->comment('使用量');
            $table->foreignId('unit_id')->nullable()->constrained('units')->nullOnDelete()
                ->comment('單位');
            
            $table->timestamps();
            
            // 索引
            $table->index(['production_order_id', 'inventory_id']);
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('production_order_items');
    }
};
