<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        $sql = <<<'SQL'
            CREATE TABLE items (
                id              BIGINT GENERATED always AS IDENTITY PRIMARY KEY,

                plant_id		BIGINT NOT NULL,

                code            TEXT NOT NULL CHECK (LENGTH(code) >= 6),
                description     TEXT NOT NULL,

                hourly_quantity INT NOT NULL CHECK (hourly_quantity > 0),

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

                UNIQUE (code, plant_id),
                FOREIGN KEY (plant_id) REFERENCES plants (id)
            );
        SQL;

        DB::statement($sql);
    }

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