doctor-appointment-system/app/Database/Migrations/2026-04-01-000000_UpdateAppointmentStatusEnum.php
2026-04-03 15:54:05 +05:30

42 lines
1.4 KiB
PHP

<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
class UpdateAppointmentStatusEnum extends Migration
{
public function up(): void
{
// Ensure enum values match the application status values.
$this->forge->modifyColumn('appointments', [
'status' => [
'name' => 'status',
'type' => 'ENUM',
'constraint' => ['pending', 'approved', 'rejected'],
'default' => 'pending',
'null' => false,
],
]);
// Convert legacy status values
$db = \Config\Database::connect();
$db->query("UPDATE `appointments` SET `status`='pending' WHERE `status` IS NULL OR `status`='' OR `status` NOT IN ('pending', 'approved', 'rejected')");
$db->query("UPDATE `appointments` SET `status`='approved' WHERE `status`='confirmed'");
$db->query("UPDATE `appointments` SET `status`='rejected' WHERE `status`='cancelled'");
}
public function down(): void
{
$this->forge->modifyColumn('appointments', [
'status' => [
'name' => 'status',
'type' => 'ENUM',
'constraint' => ['pending', 'confirmed', 'cancelled'],
'default' => 'pending',
'null' => false,
],
]);
}
}