// ───────────────────────────────────────────────────────────────────────────── // Mock data — shell-global notifications inbox // Profile, sales, and workspace alerts only. Product-local surfaces such as // placements or Learning Activities rules do not appear here. // ───────────────────────────────────────────────────────────────────────────── export type NotificationVariant = "info" | "success" | "warning" export type NotificationAudience = "staff" | "student" export type NotificationCategory = "profile" | "sales" | "workspace" export type NotificationTimeGroup = "today" | "yesterday" | "earlier" export interface NotificationItem { id: string title: string timestamp: string timeGroup: NotificationTimeGroup read: boolean variant: NotificationVariant category: NotificationCategory audience?: NotificationAudience href?: string } export const NOTIFICATION_CATEGORY_LABEL: Record = { profile: "Profile", sales: "Sales", workspace: "Workspace", } export const MOCK_NOTIFICATIONS: NotificationItem[] = [ { id: "notif-profile-1", title: "Verify your email address", timestamp: "12m ago", timeGroup: "today", read: false, variant: "info", category: "profile", href: "/settings/profile", }, { id: "notif-sales-1", title: "Renewal quote ready for review", timestamp: "45m ago", timeGroup: "today", read: false, variant: "info", category: "sales", audience: "staff", href: "/settings/organization", }, { id: "notif-workspace-1", title: "New member joined your workspace", timestamp: "2h ago", timeGroup: "today", read: false, variant: "success", category: "workspace", audience: "staff", href: "/settings/organization", }, { id: "notif-sales-2", title: "Subscription renews in 14 days", timestamp: "4h ago", timeGroup: "today", read: false, variant: "warning", category: "sales", audience: "staff", href: "/settings/organization", }, { id: "notif-profile-2", title: "Password changed successfully", timestamp: "Yesterday", timeGroup: "yesterday", read: false, variant: "success", category: "profile", href: "/settings/profile", }, { id: "notif-workspace-2", title: "Exxat One added to workspace products", timestamp: "Yesterday", timeGroup: "yesterday", read: true, variant: "info", category: "workspace", audience: "staff", href: "/settings/organization", }, { id: "notif-sales-3", title: "Invoice available for March", timestamp: "2 days ago", timeGroup: "earlier", read: true, variant: "info", category: "sales", audience: "staff", href: "/settings/organization", }, { id: "notif-workspace-3", title: "Workspace role updated for Jordan Lee", timestamp: "3 days ago", timeGroup: "earlier", read: true, variant: "info", category: "workspace", audience: "staff", href: "/settings/organization", }, ] export function unreadNotificationCount(items: NotificationItem[]): number { return items.filter(item => !item.read).length }