Feature: Add unread message notifications to admin badge

- Add isRead boolean field to Message model (default: false)
- Create migration to update database schema
- Update admin notifications to count unread messages
- Display unread message count in notification badge tooltip
- Admins now see all notifications: pending orders, design approvals, photo requests, unread messages
- Color-coded tooltip: orange (orders), blue (designs), clay (photos), pink (messages)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Andymick
2026-07-19 07:54:03 +01:00
co-authored by Claude Haiku 4.5
parent 3e90928986
commit a1c463fb49
4 changed files with 18 additions and 2 deletions
+7 -2
View File
@@ -13,6 +13,7 @@ export default async function AdminNotifications() {
pendingOrders,
designApprovalsInReview,
photoRequests,
unreadMessages,
] = await Promise.all([
prisma.order.count({
where: {
@@ -26,9 +27,12 @@ export default async function AdminNotifications() {
prisma.customRequest.count({
where: { status: 'PENDING' },
}),
prisma.message.count({
where: { isRead: false },
}),
]);
const totalNotifications = pendingOrders + designApprovalsInReview + photoRequests;
const totalNotifications = pendingOrders + designApprovalsInReview + photoRequests + unreadMessages;
return (
<AdminNotificationsBadge
@@ -36,10 +40,11 @@ export default async function AdminNotifications() {
pendingOrders={pendingOrders}
designApprovals={designApprovalsInReview}
photoRequests={photoRequests}
unreadMessages={unreadMessages}
/>
);
} catch (err) {
console.error('Error fetching admin notifications:', err);
return <AdminNotificationsBadge total={0} pendingOrders={0} designApprovals={0} photoRequests={0} />;
return <AdminNotificationsBadge total={0} pendingOrders={0} designApprovals={0} photoRequests={0} unreadMessages={0} />;
}
}