<?php

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

return new class extends Migration
{
    /**
     * 글로벌 메뉴 연결 시스템을 위한 컬럼 추가
     *
     * - global_menu_id: 원본 글로벌 메뉴 ID (복제된 경우)
     * - is_customized: 테넌트가 커스터마이징 했는지 여부
     */
    public function up(): void
    {
        Schema::table('menus', function (Blueprint $table) {
            // global_menu_id 컬럼 추가 (parent_id 다음에 위치)
            $table->unsignedBigInteger('global_menu_id')
                ->nullable()
                ->after('parent_id')
                ->comment('원본 글로벌 메뉴 ID (복제된 메뉴인 경우)');

            // is_customized 플래그 추가 (hidden 다음에 위치)
            $table->boolean('is_customized')
                ->default(false)
                ->after('hidden')
                ->comment('테넌트가 커스터마이징 했는지 여부');

            // 인덱스 추가
            $table->index('global_menu_id', 'menus_global_menu_id_idx');
            $table->index(['tenant_id', 'global_menu_id'], 'menus_tenant_global_idx');
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::table('menus', function (Blueprint $table) {
            // 인덱스 삭제
            $table->dropIndex('menus_tenant_global_idx');
            $table->dropIndex('menus_global_menu_id_idx');

            // 컬럼 삭제
            $table->dropColumn(['global_menu_id', 'is_customized']);
        });
    }
};
