35311-vm/db/migrations/001_add_resident_enhancements.php
2025-10-30 00:12:08 +00:00

48 lines
1.7 KiB
PHP

<?php
require_once __DIR__ . '/../config.php';
try {
$db = db();
// 1. Add columns to residents table
$db->exec("ALTER TABLE residents ADD COLUMN risk_level VARCHAR(255) DEFAULT 'Low'");
$db->exec("ALTER TABLE residents ADD COLUMN program VARCHAR(255) DEFAULT 'General'");
$db->exec("ALTER TABLE residents ADD COLUMN status VARCHAR(255) DEFAULT 'Active'");
// 2. Create case_notes table
$db->exec("
CREATE TABLE IF NOT EXISTS case_notes (
id INT AUTO_INCREMENT PRIMARY KEY,
resident_id INT NOT NULL,
note TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (resident_id) REFERENCES residents(id) ON DELETE CASCADE
)
");
// 3. Populate with some data
$stmt = $db->query("SELECT id FROM residents");
$resident_ids = $stmt->fetchAll(PDO::FETCH_COLUMN);
if ($resident_ids) {
$programs = ['Housing', 'Health', 'Employment'];
$risks = ['Low', 'Medium', 'High'];
$statuses = ['Active', 'Inactive', 'Stabilized'];
foreach ($resident_ids as $id) {
$program = $programs[array_rand($programs)];
$risk = $risks[array_rand($risks)];
$status = $statuses[array_rand($statuses)];
$db->prepare("UPDATE residents SET program = ?, risk_level = ?, status = ? WHERE id = ?")->execute([$program, $risk, $status, $id]);
// Add a case note
$db->prepare("INSERT INTO case_notes (resident_id, note) VALUES (?, ?)")->execute([$id, 'Initial intake assessment completed.']);
}
}
echo "Database schema updated successfully.";
} catch (PDOException $e) {
die("Database migration failed: " . $e->getMessage());
}