<?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::table('experts', function (Blueprint $table) {
            $table->string('position', 100)->nullable()->after('brand_name'); // سمت/مقام
            $table->string('workplace', 255)->nullable()->after('position'); // محل فعالیت (شرکت/موسسه)
            $table->string('status', 30)->default('pending')->after('work_experience'); // فعال/انتظار/مسدود
        });

        Schema::create('expert_education', function (Blueprint $table) {
            $table->id();
            $table->foreignId('expert_id')->constrained('experts')->cascadeOnDelete();
            $table->string('title'); // عنوان مدرک
            $table->string('institution')->nullable(); // موسسه
            $table->string('year', 20)->nullable();
            $table->string('document_path')->nullable();
            $table->integer('sort_order')->default(0);
            $table->timestamps();
        });

        Schema::create('expert_certificates', function (Blueprint $table) {
            $table->id();
            $table->foreignId('expert_id')->constrained('experts')->cascadeOnDelete();
            $table->string('name'); // نام گواهینامه/مجوز
            $table->string('document_path')->nullable();
            $table->boolean('verified')->default(false);
            $table->timestamp('verified_at')->nullable();
            $table->foreignId('verified_by')->nullable()->constrained('users')->nullOnDelete();
            $table->integer('sort_order')->default(0);
            $table->timestamps();
        });

        Schema::create('consultation_requests', function (Blueprint $table) {
            $table->id();
            $table->foreignId('producer_id')->constrained('producers')->cascadeOnDelete(); // درخواست‌دهنده
            $table->foreignId('expert_id')->constrained('experts')->cascadeOnDelete(); // خدمات‌دهنده انتخاب‌شده
            $table->string('type', 80)->nullable(); // نوع مشاوره: خوراک/مدیریت گله/سایر
            $table->string('format', 30)->nullable(); // حضوری/آنلاین
            $table->text('message')->nullable(); // پیام کاربر
            $table->string('priority', 30)->default('normal'); // غیرضروری/متوسط/فوری/اورژانسی
            $table->string('status', 30)->default('pending'); // pending, approved, rejected, closed
            $table->text('production_address')->nullable(); // آدرس واحد تولیدی (پس از تایید)
            $table->string('producer_contact')->nullable(); // راه ارتباطی با تولیدکننده
            $table->boolean('provider_can_visit')->nullable(); // خدمات‌دهنده تایید مراجعه
            $table->text('admin_notes')->nullable();
            $table->timestamp('closed_at')->nullable();
            $table->foreignId('closed_by')->nullable()->constrained('users')->nullOnDelete();
            $table->timestamps();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('consultation_requests');
        Schema::dropIfExists('expert_certificates');
        Schema::dropIfExists('expert_education');
        Schema::table('experts', function (Blueprint $table) {
            $table->dropColumn(['position', 'workplace', 'status']);
        });
    }
};
