<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     * Componentes de custo de uma Ficha Técnica (itens que compõem o CMV)
     */
    public function up(): void
    {
        Schema::create('product_sheet_items', function (Blueprint $table) {
            $table->id();
            $table->foreignId('product_sheet_id')->constrained()->onDelete('cascade');
            
            // Descrição do componente de custo
            $table->string('name'); // Ex: "Custo do produto", "Embalagem", "Etiqueta", "Frete"
            
            // Tipo de componente
            $table->enum('type', [
                'product_cost',  // Custo do produto em si
                'packaging',     // Embalagem
                'label',         // Etiqueta
                'shipping',      // Frete de compra
                'handling',      // Manuseio
                'other'          // Outros
            ])->default('other');
            
            // Valor do componente
            $table->decimal('amount', 15, 2)->default(0);
            
            // Quantidade (para cálculo unitário)
            $table->decimal('quantity', 10, 4)->default(1);
            
            // Unidade de medida
            $table->string('unit')->nullable(); // un, kg, m, etc
            
            // Valor unitário calculado
            $table->decimal('unit_cost', 15, 2)->default(0);
            
            // Ordem de exibição
            $table->integer('sort_order')->default(0);
            
            $table->timestamps();
            
            // Índices
            $table->index(['product_sheet_id', 'sort_order']);
        });
    }

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