<?php

namespace App\Database\Migrations;

use CodeIgniter\Database\Migration;

class MakeOrderItemProductOptional extends Migration
{
    public function up()
    {
        $db = \Config\Database::connect();

        if (! $db->tableExists('order_items')) {
            return;
        }

        foreach ($db->getFieldData('order_items') as $field) {
            if ($field->name === 'id_product' && ! $field->nullable) {
                // Item custom tidak mempunyai referensi ke tabel products. Foreign key
                // tetap berlaku untuk item biasa, sedangkan NULL diperbolehkan untuk custom.
                $db->query('ALTER TABLE order_items MODIFY COLUMN id_product INT(11) NULL DEFAULT NULL');
            }
        }
    }

    public function down()
    {
        // Tidak aman mengembalikan kolom menjadi NOT NULL karena data item custom
        // yang sudah tersimpan akan kehilangan referensinya.
    }
}
