devsofttech_hms_ci4/app/Database/Migrations/2026-04-28-000104_CreateUserSettingsTable.php
DevSoftTech Server 5717763496 Add user-based sidebar auto-hide setting, movable from hospital default
- Create user_settings table to store individual user preferences
- UserSettings model for get/set/delete user setting values
- Home::myProfile loads user settings with hospital defaults fallback
- Home::myProfileSave persists user settings to DB
- my_profile.php adds Sidebar Auto-Hide Delay field (0-60 seconds)
- welcome_message.php checks user settings first, then hospital default
- Setting value 0 = auto-hide disabled; blank = use hospital default
- Extensible table design for future user settings (color theme, etc)
2026-04-28 13:47:46 +05:30

54 lines
1.3 KiB
PHP

<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
class CreateUserSettingsTable extends Migration
{
public function up()
{
$this->forge->addField([
'id' => [
'type' => 'INT',
'constraint' => 11,
'auto_increment' => true,
],
'user_id' => [
'type' => 'INT',
'constraint' => 11,
'null' => false,
],
'setting_key' => [
'type' => 'VARCHAR',
'constraint' => 64,
'null' => false,
],
'setting_value' => [
'type' => 'TEXT',
'null' => true,
],
'created_at' => [
'type' => 'DATETIME',
'null' => true,
],
'updated_at' => [
'type' => 'DATETIME',
'null' => true,
],
]);
$this->forge->addPrimaryKey('id');
$this->forge->addUniqueKey(['user_id', 'setting_key'], 'uk_user_setting');
$this->forge->addKey('user_id');
$this->forge->addKey('setting_key');
$this->forge->createTable('user_settings', true);
}
public function down()
{
$this->forge->dropTable('user_settings', true);
}
}