85 lines
2.7 KiB
PHP
85 lines
2.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Phinx\Migration\AbstractMigration;
|
|
|
|
final class CreatePpeItemsTable extends AbstractMigration
|
|
{
|
|
public function change(): void
|
|
{
|
|
$table = $this->table('ppe_items', [
|
|
'id' => false,
|
|
'primary_key' => ['id'],
|
|
'collation' => 'utf8mb4_unicode_ci',
|
|
'encoding' => 'utf8mb4',
|
|
]);
|
|
|
|
$table
|
|
->addColumn('id', 'integer', [
|
|
'identity' => true,
|
|
'signed' => false,
|
|
])
|
|
->addColumn('name', 'string', [
|
|
'limit' => 255,
|
|
'null' => false,
|
|
])
|
|
->addColumn('description', 'text', [
|
|
'null' => true,
|
|
'default' => null,
|
|
])
|
|
->addColumn('category', 'string', [
|
|
'limit' => 100,
|
|
'null' => true,
|
|
'default' => null,
|
|
'comment' => 'PPE category, for example Head, Hands, Eyes, Feet, Respiratory',
|
|
])
|
|
->addColumn('photo', 'string', [
|
|
'limit' => 255,
|
|
'null' => true,
|
|
'default' => null,
|
|
'comment' => 'PPE image path or filename',
|
|
])
|
|
->addColumn('standard_reference', 'string', [
|
|
'limit' => 255,
|
|
'null' => true,
|
|
'default' => null,
|
|
'comment' => 'Reference standard, for example EN ISO 20345',
|
|
])
|
|
->addColumn('validity_months', 'integer', [
|
|
'signed' => false,
|
|
'null' => true,
|
|
'default' => null,
|
|
'comment' => 'Default validity in months after assignment',
|
|
])
|
|
->addColumn('sort_order', 'integer', [
|
|
'signed' => false,
|
|
'null' => false,
|
|
'default' => 999,
|
|
])
|
|
->addColumn('is_active', 'boolean', [
|
|
'null' => false,
|
|
'default' => 1,
|
|
])
|
|
->addColumn('created_at', 'timestamp', [
|
|
'null' => true,
|
|
'default' => 'CURRENT_TIMESTAMP',
|
|
])
|
|
->addColumn('updated_at', 'timestamp', [
|
|
'null' => true,
|
|
'default' => 'CURRENT_TIMESTAMP',
|
|
'update' => 'CURRENT_TIMESTAMP',
|
|
])
|
|
->addIndex(['category'], [
|
|
'name' => 'idx_ppe_items_category',
|
|
])
|
|
->addIndex(['is_active'], [
|
|
'name' => 'idx_ppe_items_is_active',
|
|
])
|
|
->addIndex(['sort_order'], [
|
|
'name' => 'idx_ppe_items_sort_order',
|
|
])
|
|
->create();
|
|
}
|
|
}
|