<?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::create('esign_field_template_items', function (Blueprint $table) {
            $table->id();
            $table->foreignId('template_id')->constrained('esign_field_templates')->onDelete('cascade')->comment('템플릿 ID');
            $table->unsignedTinyInteger('signer_order')->comment('서명자 순서 (1, 2, ...)');
            $table->unsignedSmallInteger('page_number')->comment('페이지 번호');
            $table->decimal('position_x', 8, 2)->comment('X 좌표 (%)');
            $table->decimal('position_y', 8, 2)->comment('Y 좌표 (%)');
            $table->decimal('width', 8, 2)->comment('너비 (%)');
            $table->decimal('height', 8, 2)->comment('높이 (%)');
            $table->enum('field_type', ['signature', 'stamp', 'text', 'date', 'checkbox'])->default('signature')->comment('필드 유형');
            $table->string('field_label', 100)->nullable()->comment('필드 라벨');
            $table->boolean('is_required')->default(true)->comment('필수 여부');
            $table->unsignedSmallInteger('sort_order')->default(0)->comment('정렬 순서');
            $table->timestamps();

            $table->index('template_id', 'idx_esign_field_template_items_template');
        });
    }

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