import React from "react";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Alert, AlertDescription } from "@/components/ui/alert";
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table";
import { AlertTriangle, CheckCircle, XCircle, Clock, Bell, Shield } from "lucide-react";
import Link from "next/link";
export default function AdminAlertsPage() {
// Mock data for system alerts
const alerts = [
{
id: "1",
type: "security",
severity: "high",
title: "Suspicious Login Attempts",
description: "Multiple failed login attempts detected from IP 192.168.1.100",
timestamp: "2024-01-20 14:30:00",
status: "active",
affectedUsers: 3
},
{
id: "2",
type: "system",
severity: "medium",
title: "High Memory Usage",
description: "Server memory usage has exceeded 85% for the past hour",
timestamp: "2024-01-20 13:45:00",
status: "resolved",
affectedUsers: 0
},
{
id: "3",
type: "payment",
severity: "high",
title: "Payment Processing Error",
description: "Bitcoin payment gateway experiencing delays",
timestamp: "2024-01-20 12:15:00",
status: "active",
affectedUsers: 12
},
{
id: "4",
type: "user",
severity: "low",
title: "New Vendor Registration",
description: "New vendor 'tech_supplies' has registered and requires approval",
timestamp: "2024-01-20 11:20:00",
status: "pending",
affectedUsers: 1
},
{
id: "5",
type: "security",
severity: "critical",
title: "Potential Security Breach",
description: "Unusual API access patterns detected from multiple IPs",
timestamp: "2024-01-20 10:30:00",
status: "investigating",
affectedUsers: 0
}
];
const getSeverityColor = (severity: string) => {
switch (severity) {
case "critical": return "destructive";
case "high": return "destructive";
case "medium": return "secondary";
case "low": return "outline";
default: return "outline";
}
};
const getStatusColor = (status: string) => {
switch (status) {
case "active": return "destructive";
case "resolved": return "default";
case "pending": return "secondary";
case "investigating": return "outline";
default: return "outline";
}
};
const getTypeIcon = (type: string) => {
switch (type) {
case "security": return
Monitor system alerts and security notifications
Require attention
Immediate action needed
Successfully resolved
Average resolution time