Files
pds/database/migrations/2025_03_20_125247_create_shifts_table.php
2025-03-25 15:02:25 +05:30

46 lines
1.2 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 shifts (
id BIGINT GENERATED always AS IDENTITY PRIMARY KEY,
name TEXT NOT NULL,
block_id BIGINT NOT NULL,
plant_id BIGINT NOT NULL,
start_time TIME NOT NULL,
duration DECIMAL NOT NULL,
end_time TIME NOT NULL, --GENERATED ALWAYS AS (start_time + (duration * INTERVAL '1 hour')) STORED,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMP,
UNIQUE (name, block_id, plant_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('shifts');
}
};