1
0
forked from poc/pds
Files
poc-pds1/database/migrations/2025_03_21_090348_create_items_table.php
2025-03-24 17:23:01 +05:30

48 lines
1.3 KiB
PHP

<?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,
line_id BIGINT NOT NULL,
block_id BIGINT NOT NULL,
plant_id BIGINT NOT NULL,
code CITEXT NOT NULL CHECK (LENGTH(code) >= 6),
description CITEXT 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, line_id, block_id, plant_id),
FOREIGN KEY (line_id) REFERENCES lines (id),
FOREIGN KEY (block_id) REFERENCES blocks (id),
FOREIGN KEY (plant_id) REFERENCES plants (id)
);
SQL;
DB::statement($sql);
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('items');
}
};