<?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 mfm_parameters (
                id					BIGINT GENERATED always AS IDENTITY PRIMARY KEY,
                plant_id            BIGINT NOT NULL,
                mfm_meter_id        BIGINT NOT NULL,
                name                TEXT NOT NULL,

                register_id		    TEXT NOT NULL,
                identifier		    TEXT NOT NULL,

                byte_to_convert     INT NOT NULL,
                type_to_convert     TEXT NOT NULL,
                decimal_to_display  INT NOT NULL,

                created_at			TIMESTAMP NOT NULL DEFAULT NOW(),
                updated_at			TIMESTAMP NOT NULL DEFAULT NOW(),
                deleted_at			TIMESTAMP,

                UNIQUE (plant_id, mfm_meter_id, name),
                UNIQUE (plant_id, mfm_meter_id, register_id),
                FOREIGN KEY (plant_id)          REFERENCES  plants (id),
                FOREIGN KEY (mfm_meter_id)      REFERENCES mfm_meters (id)
            );
        SQL;

        DB::statement($sql);
    }

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