Add soft deletes via status column
- Add status ENUM('active','disabled','deleted') to 8 tables
- Change all physical DELETE to UPDATE status='deleted'
- All SELECT queries filter by status='active'
- toggleActive now alternates between active/disabled status
- Exceptions: monitoring_history, rate_limits, sessions keep physical purge
- audit_logs remains immutable
This commit is contained in:
@@ -22,7 +22,7 @@ class MonitoringService
|
||||
|
||||
public function collectMetrics(int $serverId): ?array
|
||||
{
|
||||
$server = $this->db->fetch('SELECT * FROM servers WHERE id = ?', [$serverId]);
|
||||
$server = $this->db->fetch('SELECT * FROM servers WHERE id = ? AND status = \'active\'', [$serverId]);
|
||||
|
||||
if (!$server || !$server['is_active']) {
|
||||
return null;
|
||||
@@ -71,7 +71,7 @@ class MonitoringService
|
||||
|
||||
public function collectAllMetrics(): array
|
||||
{
|
||||
$servers = $this->db->fetchAll('SELECT * FROM servers WHERE is_active = 1');
|
||||
$servers = $this->db->fetchAll('SELECT * FROM servers WHERE status = \'active\' AND is_active = 1');
|
||||
$results = [];
|
||||
|
||||
foreach ($servers as $server) {
|
||||
@@ -187,26 +187,26 @@ class MonitoringService
|
||||
$params = $serverIds;
|
||||
}
|
||||
|
||||
$totalServers = $this->db->fetch("SELECT COUNT(*) as total FROM servers s WHERE 1=1{$where}", $params);
|
||||
$totalServers = $this->db->fetch("SELECT COUNT(*) as total FROM servers s WHERE s.status = 'active'{$where}", $params);
|
||||
$onlineServers = $this->db->fetch(
|
||||
"SELECT COUNT(*) as total FROM servers s WHERE s.current_status = 'online' AND s.is_active = 1{$where}",
|
||||
"SELECT COUNT(*) as total FROM servers s WHERE s.current_status = 'online' AND s.status = 'active' AND s.is_active = 1{$where}",
|
||||
$params
|
||||
);
|
||||
$offlineServers = $this->db->fetch(
|
||||
"SELECT COUNT(*) as total FROM servers s WHERE s.current_status = 'offline' AND s.is_active = 1{$where}",
|
||||
"SELECT COUNT(*) as total FROM servers s WHERE s.current_status = 'offline' AND s.status = 'active' AND s.is_active = 1{$where}",
|
||||
$params
|
||||
);
|
||||
|
||||
$avgCpu = $this->db->fetch(
|
||||
"SELECT AVG(s.cpu_usage) as avg FROM servers s WHERE s.is_active = 1 AND s.current_status = 'online'{$where}",
|
||||
"SELECT AVG(s.cpu_usage) as avg FROM servers s WHERE s.status = 'active' AND s.is_active = 1 AND s.current_status = 'online'{$where}",
|
||||
$params
|
||||
);
|
||||
$avgRam = $this->db->fetch(
|
||||
"SELECT AVG(s.ram_usage) as avg FROM servers s WHERE s.is_active = 1 AND s.current_status = 'online'{$where}",
|
||||
"SELECT AVG(s.ram_usage) as avg FROM servers s WHERE s.status = 'active' AND s.is_active = 1 AND s.current_status = 'online'{$where}",
|
||||
$params
|
||||
);
|
||||
$avgDisk = $this->db->fetch(
|
||||
"SELECT AVG(s.disk_usage) as avg FROM servers s WHERE s.is_active = 1 AND s.current_status = 'online'{$where}",
|
||||
"SELECT AVG(s.disk_usage) as avg FROM servers s WHERE s.status = 'active' AND s.is_active = 1 AND s.current_status = 'online'{$where}",
|
||||
$params
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user