<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        // إضافة حقل platform_fee في جدول food_orders
        Schema::table('food_orders', function (Blueprint $table) {
            $table->decimal('platform_fee', 10, 2)->default(0.00)->after('total');
            $table->boolean('platform_fee_calculated')->default(false)->after('platform_fee');
        });

        // إضافة حقل platform_fee في جدول gas_orders
        Schema::table('gas_orders', function (Blueprint $table) {
            $table->decimal('platform_fee', 10, 2)->default(0.00)->after('total');
            $table->boolean('platform_fee_calculated')->default(false)->after('platform_fee');
        });

        // جدول سجل أجور التطبيق
        Schema::create('platform_fees', function (Blueprint $table) {
            $table->id();
            $table->string('order_type'); // 'food' أو 'gas'
            $table->unsignedBigInteger('order_id'); // معرف الطلبية
            $table->string('order_number'); // رقم الطلبية
            $table->unsignedBigInteger('service_provider_id'); // معرف مقدم الخدمة (مطعم أو مكتب غاز)
            $table->string('service_provider_type'); // 'restaurant' أو 'gas_office'
            $table->decimal('order_total', 10, 2); // القيمة الإجمالية للطلبية
            $table->decimal('platform_fee', 10, 2); // أجر التطبيق
            $table->decimal('fee_percentage', 5, 4)->nullable(); // النسبة المستخدمة (إن وجدت)
            $table->enum('status', ['pending', 'collected', 'paid'])->default('pending'); // حالة الدفع
            $table->timestamp('paid_at')->nullable(); // تاريخ الدفع لمقدم الخدمة
            $table->text('notes')->nullable(); // ملاحظات
            $table->timestamps();

            // فهارس للبحث السريع
            $table->index(['service_provider_id', 'service_provider_type']);
            $table->index(['order_type', 'order_id']);
            $table->index(['status']);
            $table->index(['created_at']);
        });
    }

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

        Schema::table('food_orders', function (Blueprint $table) {
            $table->dropColumn(['platform_fee', 'platform_fee_calculated']);
        });

        Schema::table('gas_orders', function (Blueprint $table) {
            $table->dropColumn(['platform_fee', 'platform_fee_calculated']);
        });
    }
};
