<?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
    {
        $sql = <<<'SQL'
            CREATE TABLE panel_box_validations (
                id                                  BIGINT GENERATED always AS IDENTITY PRIMARY KEY,

                plant_id                            BIGINT NOT NULL,
                line_id                             BIGINT NOT NULL,
                sticker_master_id                   BIGINT NOT NULL,
                production_order                    TEXT DEFAULT NULL,
                serial_number                       TEXT DEFAULT NULL,
                serial_number_panel                 TEXT DEFAULT NULL,
                pack_slip_panel                     TEXT DEFAULT NULL,
                name_plate_panel                    TEXT DEFAULT NULL,
                tube_sticker_panel                  TEXT DEFAULT NULL,
                warranty_card_panel                 TEXT DEFAULT NULL,
                part_validation1                    TEXT DEFAULT NULL,
                part_validation2                    TEXT DEFAULT NULL,
                part_validation3                    TEXT DEFAULT NULL,
                part_validation4                    TEXT DEFAULT NULL,
                part_validation5                    TEXT DEFAULT NULL,
                created_at                          TIMESTAMP NOT NULL DEFAULT NOW(),
                updated_at                          TIMESTAMP,
                created_by                          TEXT DEFAULT NULL,
                updated_by                          TEXT DEFAULT NULL,
                deleted_at			                TIMESTAMP,

                UNIQUE (plant_id, serial_number),
                FOREIGN KEY (plant_id)      REFERENCES  plants (id),
                FOREIGN KEY (line_id)       REFERENCES  lines (id),
                FOREIGN KEY (sticker_master_id)    REFERENCES  sticker_masters (id)
            );
        SQL;

        DB::statement($sql);
    }

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