Files
animal_management/migrations/m260402_010000_transfer_event_audit.php
2026-04-04 13:13:00 -04:00

64 lines
2.2 KiB
PHP

<?php
use humhub\components\Migration;
class m260402_010000_transfer_event_audit extends Migration
{
public function safeUp()
{
$this->safeCreateTable('rescue_animal_transfer_event', [
'id' => $this->primaryKey(),
'transfer_id' => $this->integer()->notNull(),
'animal_id' => $this->integer()->notNull(),
'event_type' => $this->string(32)->notNull(),
'from_status' => $this->string(32)->null(),
'to_status' => $this->string(32)->null(),
'message' => $this->text()->null(),
'metadata_json' => $this->text()->null(),
'created_by' => $this->integer()->null(),
'created_at' => $this->dateTime()->null(),
]);
$this->safeCreateIndex('idx_rescue_transfer_event_transfer', 'rescue_animal_transfer_event', 'transfer_id', false);
$this->safeCreateIndex('idx_rescue_transfer_event_animal', 'rescue_animal_transfer_event', 'animal_id', false);
$this->safeCreateIndex('idx_rescue_transfer_event_type', 'rescue_animal_transfer_event', 'event_type', false);
$this->safeCreateIndex('idx_rescue_transfer_event_created_at', 'rescue_animal_transfer_event', 'created_at', false);
$this->safeAddForeignKey(
'fk_rescue_transfer_event_transfer',
'rescue_animal_transfer_event',
'transfer_id',
'rescue_animal_transfer',
'id',
'CASCADE',
'CASCADE'
);
$this->safeAddForeignKey(
'fk_rescue_transfer_event_animal',
'rescue_animal_transfer_event',
'animal_id',
'rescue_animal',
'id',
'CASCADE',
'CASCADE'
);
if ($this->db->getSchema()->getTableSchema('user', true) !== null) {
$this->safeAddForeignKey(
'fk_rescue_transfer_event_created_by',
'rescue_animal_transfer_event',
'created_by',
'user',
'id',
'SET NULL',
'CASCADE'
);
}
}
public function safeDown()
{
$this->safeDropTable('rescue_animal_transfer_event');
}
}