<?php

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

/**
 * PRC-812 — Free/trial suistimal kontrolleri: paket-başına sipariş limiti +
 * ürün yenilemeyi-kapat (upgrade'e zorla).
 *
 * - max_orders_per_client: bir müşterinin bu ürünü kaç kez sipariş edebileceği
 *   (nullable; NULL = sınırsız, varsayılan). "x1 free paket" = limit 1.
 * - allow_renewal: false ise DueInvoiceService yenileme faturası üretmez;
 *   client-area'da "Yenile" yerine "Upgrade" gösterilir (varsayılan true =
 *   mevcut davranış, regresyon yok).
 */
return new class extends Migration
{
    public function up(): void
    {
        Schema::table('products', function (Blueprint $table) {
            $table->unsignedInteger('max_orders_per_client')
                ->nullable()
                ->after('used_stock')
                ->comment('PRC-812: müşteri başına maks. sipariş; NULL = sınırsız');

            $table->boolean('allow_renewal')
                ->default(true)
                ->after('max_orders_per_client')
                ->comment('PRC-812: false ise yenileme faturası üretilmez, upgrade zorlanır');
        });
    }

    public function down(): void
    {
        Schema::table('products', function (Blueprint $table) {
            $table->dropColumn(['max_orders_per_client', 'allow_renewal']);
        });
    }
};
