refactor: drop is_read and read_at from notifications table
- is_read and read_at columns are now obsolete since notification_reads tracks per-user read receipts - Removed UPDATE statements in markAsRead/markAllAsRead that touched the old columns - API response still includes computed is_read field via SQL CASE in getForUser() JOIN with notification_reads, maintaining Android compatibility - Migration 009 drops both columns
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
ALTER TABLE `notifications`
|
||||||
|
DROP COLUMN `is_read`,
|
||||||
|
DROP COLUMN `read_at`;
|
||||||
@@ -86,13 +86,6 @@ class Notification
|
|||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
// Already read, ignore
|
// Already read, ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->update(
|
|
||||||
'notifications',
|
|
||||||
['is_read' => 1, 'read_at' => date('Y-m-d H:i:s')],
|
|
||||||
'id = ? AND (user_id IS NULL OR user_id = ?)',
|
|
||||||
[$id, $userId]
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function markAllAsRead(int $userId): void
|
public function markAllAsRead(int $userId): void
|
||||||
@@ -119,13 +112,6 @@ class Notification
|
|||||||
// Duplicate entry — already read, skip
|
// Duplicate entry — already read, skip
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->update(
|
|
||||||
'notifications',
|
|
||||||
['is_read' => 1, 'read_at' => $now],
|
|
||||||
'(user_id IS NULL OR user_id = ?) AND is_read = 0',
|
|
||||||
[$userId]
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getAll(int $page = 1, int $perPage = 20): array
|
public function getAll(int $page = 1, int $perPage = 20): array
|
||||||
|
|||||||
Reference in New Issue
Block a user